运行方法后执行代码?

sba*_*_20 0 java multithreading

我在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;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我得到l = obj.getList();A类中的列表值时,我得到null l = obj.getList();.在运行方法更新之前,会立即调用A 类中的行.如何使主线程等待并在线程T返回后显示正确的值.请建议?

Kor*_*tor 7

虽然其他建议也可能有用.最简单的解决方案是等待线程结束.

T.start();
T.join();

l = obj.getList();
Run Code Online (Sandbox Code Playgroud)