为什么sun.misc.Unsafe.unpark()描述'不安全'?

时间:2014-08-11 01:31:17

标签: java jvm java-native-interface

上面有评论

public native void unpark(Object thread);

"取消阻止在停放时阻止的给定线程,或者,如果未阻止,则导致后续的暂停呼叫不阻止。注意:此操作不安全"完全是因为调用者必须以某种方式确保线程没有被销毁。从Java调用时通常不需要特殊的东西来确保这一点(通常会有一个对线程的实时引用),但是当从本机代码调用时,这几乎不是自动的。"

但是为什么本机代码调用会带来被破坏的线程?

1 个答案:

答案 0 :(得分:1)

评论可能已过时。我没有看到JDK或HotSpot本地人对Unsafe.unpark的任何调用。

此外,LockSupport.unpark直接调用Unsafe.unpark。同时LockSupport是公共API,因此必须安全。