java - 为什么 sun.misc.Unsafe.unpark() 被描述为 'Unsafe' ?

标签 java jvm java-native-interface

上面有一条评论

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/

相关文章:

java - Elasticsearch Mustache 可选参数

java - 移动java应用程序

java - SharedPreference不保存以前的数据

java - 将导入的文本文件的行转换为数组并打印数组以在 Netbeans 和 Swing 中制作图形

tomcat - Tomcat下应用运行的环境变量

java - NonFatal 捕获 Throwable 可以吗?

javascript - 从基于 kotlin JVM 的项目调用 javascript 函数

c++ - Gradle cpp 插件不链接共享库

java - 使用 JNI 在 C++ 中加载 .jar 文件

java - System.loadLibrary 不再作为 Java 包的一部分工作