质量推广预告 - JDK 20:禁用旧并行类加载权宜之计…

OpenJDK 质量小组通过 OpenJDK 早期访问版本来推广 FOSS 项目的测试,以此来提高发布的整体质量。此预告是发送给相关项目的定期通信的一部分。要了解有关该计划的更多信息以及如何加入,请在此处查看。

JDK 20 - 弃用并禁用不具备并行处理能力的类加载器的旧并行类加载权宜之计

在 JDK 7 之前,使用非层次类委托模型的自定义类加载器容易发生死锁。HotSpot VM(JDK 6)中添加了一个权宜之计,以允许不具备并行处理能力的类加载器进行并行类加载,从而避免死锁。

具备并行处理能力的类加载器在 Java SE 7 中引入,以支持并行类加载,从而使用非层次类委托模型实现无死锁的类加载器。以下资源介绍了如何将依赖于此权宜之计的类加载器迁移为具有多线程并行处理能力的类加载器。

此权宜之计旨在允许这些开发人员迁移到新机制。JDK 7 在 11 年前发布,因此现在预计那些容易发生死锁的自定义类加载器已迁移到具有并行处理能力的类加载器。因此,此权宜之计在 JDK 20 中被删除,因为它妨碍了消除虚拟线程的固定对象监视器。

我们建议确认你的代码库不依赖于此旧权宜之计。如果仍然依赖,你应尽快迁移。请注意,可以使用特殊标志临时重新启用旧行为。

更多信息

~