线程局部握手说明

2022-09-01 09:06:37

作为假定的 JDK 10 的一部分,提出了这个 JEP 312:线程本地握手

我试图掌握它的描述,但我仍然不相信我是否正确理解了这个想法。

它本质上是试图复活类似于已弃用的Thread.destroy()的东西吗

这个界面在理论上是什么样子的?


答案 1

在研究了JEP:312 Thread-Local-Handshakes并阅读了对这个问题的精彩评论之后,这里有一个快速的摘要。

  • 这是一种性能增强,开发人员无法直接使用:

    提出了一种机制作为该机制的优化。handshakeHotspot safepoints

    前者允许安全点中的线程在执行监管操作(握手回调)后立即继续执行。

    后者强制所有线程阻塞在安全点上,以便进行关键操作(例如YoungGen GC或Full GC的STW部分)。只有在关键操作完成其执行后,才会释放线程。

  • 此 JEP 与线程终止 API(如 Thread.destroy())无关。由于这个主题已经提出,我将在下面的参考文献中添加一些关于线程终止的文章。

OP评论员:

JimmyBAndy TurnerskomisaAlexander Bollaert

引用:


答案 2