我在 A 类中有一个方法,它创建一个线程并调用 B 类中的 run 方法。我在 B 类中有一个列表,该列表在 B 类的 run 方法中更新,我需要在 run 方法返回后在 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;
}
}
现在,当我获得 A 类中的列表值时,我得到了 null。Al = obj.getList();
类中的行在l = obj.getList();
被 run 方法更新之前立即被调用。线程T返回后如何让主线程等待并显示正确的值。请建议?