上面有一条评论
public native void unpark(对象线程);
“取消阻塞在park上阻塞的给定线程,或者,如果它没有阻塞,则导致后续对park的调用不阻塞。注意:此操作“不安全”,仅仅是因为调用者必须以某种方式确保线程没有阻塞被破坏了。当从 Java 调用时(其中通常存在对线程的实时引用),通常不需要任何特殊的东西来确保这一点,但是当从 native 代码调用时,这几乎不是自动的。”
但是为什么本地代码调用会带来一个被破坏的线程呢?
最佳答案
该评论可能已过时。我没有看到 JDK 或 HotSpot native 对 Unsafe.unpark
的任何调用。
此外,LockSupport.unpark
直接调用Unsafe.unpark
。同时LockSupport
是公共(public)API,因此它必须安全。
关于java - 为什么 sun.misc.Unsafe.unpark() 被描述为 'Unsafe' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25234679/