gpt4 book ai didi

java - Java 中 Thread 的自定义实现 : Is it possible though JNI?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:40:37 24 4
gpt4 key购买 nike

是否有可能以安全/正确的方式在 Java 中(使用 JNI)实现自定义 Thread 类?

假设我编写自己的 NewThread 类,使用原生的 start() 方法, fork 执行,调用 run() fork 线程并返回...

这可能吗? JVM 会提示吗?根据规范,它是“合法的”吗?这会破坏内存模型中的任何东西吗?它是否取决于特定的 JVM?

最佳答案

您的问题已在 Java Native InterfaceProgrammer's Guide and Specification, section 8.1.5 中得到解答.

重要的问题是 VM 必须使用与您在 native 代码中相同的线程模型。一些第一批 Java VM 在某些操作系统 (Linux) 上使用所谓的“绿色线程”来模拟线程上下文切换,因为操作系统本身不提供 native 线程支持。如果您要在具有 native 线程支持的较新操作系统版本上使用这些旧 VM 之一,这些“绿色线程”将无法与 native 线程交互。

自 Sun 的 JRE 1.3 以来,我认为所有“普通”VM 都直接使用 native 线程,这意味着您可以在 JNI 代码中自己使用 native 线程并期望一切都按您期望的方式工作。

关于java - Java 中 Thread 的自定义实现 : Is it possible though JNI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3478150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com