繁体   English   中英

运行方法后执行代码?

[英]Executing the code after run method?

我在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;
    }
}

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

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

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

l = obj.getList();

在这种情况下,我什至没有理由首先产生线程。

代替

B obj = new B();
Thread T = new Thread(obj);
T.start();

您可以这样做:

new B().run();

在开始和联接之间进行操作时,使用联接更有用。

T.start();
//do some other work here
T.join();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM