java - thread.join() 从概念上讲是如何工作的?

标签 java multithreading

来自文档:

The join method allows one thread to wait for the completion of another. If t is a Thread object whose thread is currently executing,

t.join();

causes the current thread to pause execution until t's thread terminates

我无法理解的是,这是线程上的一种方法,与调用它的方法不同。因此,如果一个线程 t1 调用另一个线程的 t2.join(),则 t2t1 一无所知。那么,到底发生了什么让 t1 等待 t2 完成呢?

最佳答案

通过查看Java源代码:

从 t1 调用 t2.join() 将使 t1 等待 t2 对象(t2 是一个 Thread,它是 Object 的子类)。只要 t1 还活着,等待就会永远持续下去。当 t2 线程完成其工作时,它将调用 Object.notifyAll(),以便 t1 唤醒。

关于java - thread.join() 从概念上讲是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53405013/

相关文章:

java - 画圈 : separation of code into classes

java - 获取 Hbase 中特定行的所有列值

java - "Unsupported major.minor version 52.0"Jboss MySql

尝试实例化子类时出现 java.lang.InstantiationException 错误

python 2.7脚本无限期地并行运行两个while循环

java - 如何在线程安全惰性初始化期间避免持续同步(不是单例解决方案)?

java - 尝试在支持 map fragment 上pu Edittext

multithreading - 使用 Omni Thread Library 在 Delphi 中异步获取函数结果

java - 为什么在 jUnit 测试中非守护线程会终止?

java - Spring 批处理 : starting a job from within a Spring MVC contorller WITH A NEW THREAD