So rufen Sie eine Methode in Java asynchron aufJava

Java-Forum
Guest
 So rufen Sie eine Methode in Java asynchron auf

Post by Guest »

Ich habe mir in letzter Zeit die Goroutinen von Go angesehen und dachte, es wäre schön, etwas Ähnliches in Java zu haben. Soweit ich gesucht habe, besteht die übliche Methode zum Parallelisieren eines Methodenaufrufs darin, Folgendes zu tun:

Code: Select all

final String x = "somethingelse";
new Thread(new Runnable() {
public void run() {
x.matches("something");
}
}).start();
Das ist nicht sehr elegant. Gibt es eine bessere Möglichkeit, dies zu tun? Ich brauchte eine solche Lösung in einem Projekt, also beschloss ich, meine eigene Wrapper-Klasse um einen asynchronen Methodenaufruf herum zu implementieren.

Ich habe meine Wrapper-Klasse in J-Go veröffentlicht. Aber ich weiß nicht, ob es eine gute Lösung ist. Die Verwendung ist einfach:

Code: Select all

SampleClass obj = ...
FutureResult res = ...
Go go = new Go(obj);
go.callLater(res, "intReturningMethod", 10);         //10 is a Integer method parameter
//... Do something else
//...
System.out.println("Result: "+res.get());           //Blocks until intReturningMethod returns
oder weniger ausführlich:

Code: Select all

Go.with(obj).callLater("myRandomMethod");
//... Go away
if (Go.lastResult().isReady())                //Blocks until myRandomMethod has ended
System.out.println("Method is finished!");
Intern verwende ich eine Klasse, die Runnable implementiert und einige Reflection-Arbeiten durchführt, um das richtige Methodenobjekt zu erhalten und es aufzurufen.

Ich möchte eine Meinung zu meiner kleinen Bibliothek und zum Thema asynchrone Methodenaufrufe wie diesen in Java haben. Ist es sicher? Gibt es schon einen einfacheren Weg?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post