我在类A中创建了一个方法,它创建一个线程并调用类B中的run方法。我在类B中的run方法中更新了类B中的列表,并且我需要在类A中访问该类中的方法方法返回。我已经给出了下面的示例代码。运行方法后执行代码?
class A {
public static void main(String[] args) {
List l = null;
B obj = new B();
Thread T = new Thread(obj);
T.start();
l = obj.getList();
// do something with l
}
}
class B implements Runnable {
List l;
void run() {
l = doSomething();
}
public List getList() {
return List l;
}
}
现在,当我得到的列表值l = obj.getList();
这是在A级A类线l = obj.getList();
以前被通过的run方法更新立即被调用我得到空。如何让主线程在线程T返回后等待并显示正确的值。请建议?
对于这样简单的代码来说,这是一个伪代码。 –
看看''Future''接口。 –
qqilihq
https://code.google.com/p/guava-libraries/wiki/ListenableFutureExplained;) – 2013-10-03 19:51:01