1.新版 Loom EA 改进虚拟线程中的监视器(同步方法)
Project Loom 发布了新的抢先体验版本(23-loom+4-102 - 2024/5/31)。改进了对象监视器实现,可以防止虚拟线程在以下情况下固定其载体线程:
- 当进入同步方法/语句时发生阻塞,因为该对象的关联监视器由另一个线程持有
- 在同步方法中停止时(例如,执行套接字 I/O 时)
- Object.wait在同步方法中调用时
具体如下图示例所示:
2.声明
Object.wait/timed-的变化wait是自上次 Loom EA 版本以来的主要变化。
Loom 团队正在寻求帮助来测试这些更改,即使用已知使用虚拟线程的代码和“高度同步”的库来尝试这些版本。主要目标是衡量可靠性和性能。现在重点是功能性和可靠性。请注意,在某些情况下,性能尚未完全与 juconcurrent 锁和条件对象上的阻塞相提并论。
与以前一样,JFR 事件可用于识别类初始化程序中的剩余固定、停放或阻塞情况。过去jdk.tracePinnedThreads用于在线程固定时打印堆栈跟踪的系统属性,现在不再输出任何内容。