项目中需要通过 jni 调用动态库,有单个 java 进程并行调用 jni 逻辑的需求,而动态库内是线程不安全的单线程逻辑且动态库没法改,请问各位有没有解决办法
1
v2eb Sep 24, 2022 via Android
串行
|
2
darkengine Sep 24, 2022
|
3
keifafa Sep 24, 2022 via Android
多进程?
|
4
fanxasy OP @darkengine 结合源码看了下,感觉有机会成,我试试
|
5
fanxasy OP @darkengine 有一个 static Vector<String> loadedLibraryNames 存放已加载的库名,不允许在不同的 classloader 实例去加载相同的库
|
6
pursuer Sep 24, 2022
通常操作系统不支持同名动态库重名加载,可以看下动态库改名是否行得通,不过也可能还会有符号冲突,还有一种方案是网上找定制开发的动态库加载器
|
7
darkengine Sep 24, 2022
@fanxasy 我也没实践过呢,按照这个 https://stackoverflow.com/questions/16189217/same-native-library-loaded-by-different-class-loader 说的,看来是不能实现的了。
|