博览会:
我在Linux / Mac上。
我的部分代码是Java,部分代码是C ++。
它们都有相同的文件mmapped以便快速通信。
我想同步Java& C ++代码。
我知道以下内容:
1)在Java中给出两个线程,我可以使用Locks / monitors。
2)给出一段用Java编写的代码,一个用C ++代码,我可以通过tcp / ip进行同步
3)给定两段C ++代码,它们已经编写了一个内存区域,我可以使用gcc的compare_and_swap在mmaped区域中的整数上进行同步。
问题:
鉴于我的部分代码是用Java编写的,我的部分代码是用C ++编写的,我可以用某种方式做(3) - JVM是否支持某种类型的原子比较&交换?所以我的Java& C ++代码可以使用这个整数作为一种锁定吗?
谢谢!
答案 0 :(得分:2)
您可以编写一个小型C / C ++库,其唯一目的是与您的C ++代码同步(使用传统的IPC同步对象)。那么你可以使用JNI从你的java进程中获取这个库。