Java提供了一些仅供内部使用的API,并在其他情况下不鼓励不必要地使用。JVM开发者给包和类命名时使用了_Unsafe_这样的名称,以警告开发者。然而,这通常并不能阻止开发者使用这些类。
在本教程中,我们将学习为什么_Unsafe.park()_实际上不安全。目标不是吓唬人,而是教育并提供对_park()_和_unpark(Thread)_方法内部工作原理的更好理解。
_Unsafe_类包含一个低级API,旨在仅供内部库使用。然而,即使在引入JPMS之后,_sun.misc.Unsafe_仍然可以访问。这是为了保持向后兼容性并支持可能使用此API的所有库和框架。JEP 260中更详细地解释了原因。
大约 6 分钟