《Java并发编程的艺术》中讲到Thread.join()时,说到其实现依赖于wait/notifyAll的等待通知机制,特别说明:当线程终止时,会调用自身的notifyAll方法?何以见得?查看源码无迹可寻...
各位怎么看...
《Java并发编程的艺术》中讲到Thread.join()时,说到其实现依赖于wait/notifyAll的等待通知机制,特别说明:当线程终止时,会调用自身的notifyAll方法?何以见得?查看源码无迹可寻...
各位怎么看...
8 回答6.4k 阅读
1 回答4.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
3 回答1.7k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
当 Thread 执行完毕之后会调用
notifyAll()
方法,不过不是在Java
源码中调用的,而是在jdk
的 native code 里调用的。openjdk 7
的源码里有:/jdk7/hotspot/src/os/linux/vm/os_linux.cpp
参数里的
thread
其实是JavaThread
的实例,而在JavaThread
的内部实现中,在run
方法执行结束之前会调用lock.notify_all(thread)
通知所有join
等待的线程。源码如下:/jdk7/hotspot/src/share/vm/runtime/thread.cpp