我希望能够等待线程从另一个类的某些计算中返回一个值。让我发布一些代码:
public class ClassA implements Runnable{
public boolean threadRunning ;
public String value ;
public ClassA() {
...
}
public String getValueFromServer() {
//call to a method in the server that does some calculation
ClassB.sendPetitionToServer() ;
t=new Thread (this) ;
threadRunning = true ;
t.start();
return value
}
public void run()
{
while(threadRunning)
{
checkValue ()
}
}
public void checkValue () {
String value = ClassB.getInstance().getValue ;
if (value!=null) {
threadRunning = false ;
}
}
}
问题是,我如何等待线程从ClassB.SendPetitionFromToServer()返回方法中的值?方法ClassB填充值但必须进行一些花费时间(5-8秒)的计算。 ClassB不是Runnable,是一个简单的类。也许我应该创建另一个存储值的类并通知ClassA。
总结我的问题(也许是混淆甚至我的方法只是简单的愚蠢)。
我正在开发Java WebApp。我有一个实现Runnable接口的ClassA。这个类有一个方法,需要从另一个需要执行一些非常繁重的计算需要时间的ClassB中检索一些信息(从MySQL中检索一些信息,用信息做一些计算......)。在从ClassB获得响应之前,如何从ClassA中停止该方法?无论如何都要这样做吗?
提前致谢