上面有评论
public native void unpark(Object thread);
"取消阻止在停放时阻止的给定线程,或者,如果未阻止,则导致后续的暂停呼叫不阻止。注意:此操作不安全"完全是因为调用者必须以某种方式确保线程没有被销毁。从Java调用时通常不需要特殊的东西来确保这一点(通常会有一个对线程的实时引用),但是当从本机代码调用时,这几乎不是自动的。"
但是为什么本机代码调用会带来被破坏的线程?
答案 0 :(得分:1)
评论可能已过时。我没有看到JDK或HotSpot本地人对Unsafe.unpark
的任何调用。
此外,LockSupport.unpark
直接调用Unsafe.unpark
。同时LockSupport
是公共API,因此必须安全。