为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA上的多线程

JAVA上的多线程

UYOU 2021-09-15 15:45:33
我在 JVM 多线程环境中出现内存崩溃。在每个线程运行环境中,我正在加载 C++ 共享库的一个实例。(比如 exm1.so、exm2.so 等)。首先让我告诉您,C++ 共享库不是线程安全的。因此,我们将使用 C++ 共享库的实例加载 JVM 创建的每个线程。Java代码:import com.sun.jna.Native;Thread 1:run{  x libraryInstance = Native.loadLibrary(exm1.so, x.class);  x. mymethod();}Thread 2:run{  x libraryInstance = Native.loadLibrary(exm2.so, x.class);  x. mymethod();}我的问题是这个 .so 文件将存储在哪个内存中,JVM 是否以线程安全的方式管理每个线程内存?在每个 .so 文件中都有 C++ malloc 函数调用。JVM 有效地管理此内存 ptr。
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

我得到了正确的答案。Linux 中通过 JAVA 的 dlopen 不默认为 RTLD_LOCAL。我已经明确地通过了相同的。有效。


查看完整回答
反对 回复 2021-09-15
  • 2 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信