我在C ++中有一个缓存实现,可以通过JNI从JAVA代码访问。 为了允许并发访问缓存我需要锁定它,我很困惑我应该在我的C ++程序中使用什么类型的锁?我应该使用JNI的montiorEnter / Exit,因为执行jni代码的线程是java线程还是std :: mutex cacheMtx?感谢
答案 0 :(得分:0)
在这里查看一下从不同线程访问JVM的示例代码。
http://jnicookbook.owsiak.org/recipe-no-027/
通常,您希望确保获得对JVM的访问权限,使用它,然后释放所有内容。
在你的情况下,你的方法略有不同,因为你可能不会再调用JVM,但是,你可以使用pthread_mutex,因为你在JVM中加载的同一个共享库中。