我在类 A 中有一个方法,它创建一个线程并调用类 B 中的 run 方法。我在类 B 中有一个列表,该列表在类 B 的 run 方法中更新,我需要在run方法返回。我在下面给出了示例代码。
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();
时,我得到 null属于 A 类。行 l = obj.getList();
在 A 类中,在 run 方法更新之前立即被调用。如何让主线程等待并在线程T返回后显示正确的值。请推荐一下?
最佳答案
尽管其他建议也可能有用。最简单的解决方案是等待线程结束。
T.start();
T.join();
l = obj.getList();
关于java - run方法后执行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19167994/