《Java并发编程的艺术》中关于“当线程终止时,会调用自身的notifyAll方法”?何以见得?
《Java并发编程的艺术》中讲到Thread.join()时,说到其实现依赖于wait/notifyAll的等待通知机制,特别说明:当线程终止时,会调用自身的notifyAll方法?何以见得?查看源码无迹可寻...
各位怎么看...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当 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