上面有一条评论

public native void unpark(Object thread);

“取消对给定线程在驻留时阻塞的解除阻塞,或者,如果未阻塞,则导致后续的驻留不被阻塞的调用。注意:此操作是“不安全的”,仅是因为调用方必须以某种方式确保未破坏线程。从Java调用时(通常会实时引用该线程),通常不需要什么特别的操作来确保这一点,但是从本地代码调用时,这几乎不是自动的。”

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

最佳答案

该评论可能已过时。我看不到JDK或HotSpot本机对Unsafe.unpark的任何调用。

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

10-08 17:28