java - run方法后执行代码?

标签 java multithreading

我在类 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/

相关文章:

java - 如何使用主机名 validator ?

java - 映射目录时 sbt-native-packager 失败并显示 "Too many open files in system"

java - 为通用数据库模型设计数据访问层

python - python 中如何知道线程是否为虚拟线程?

Java 非阻塞 HTTP 服务器

java - 开机完成后需要立即启动app

java - 在 Java 中现有数据之间添加文本文件中的数据

java - 为什么Java虚拟机中没有GIL?为什么 Python 这么需要一个?

Python线程定时器

java - 即使两个线程不同时读写,我是否也需要同步?