Java,C ++,NIO,mmaped缓冲区,同步

时间:2010-01-10 08:29:12

标签: java c++ locking nio mmap

博览会:

我在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 ++代码可以使用这个整数作为一种锁定吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以编写一个小型C / C ++库,其唯一目的是与您的C ++代码同步(使用传统的IPC同步对象)。那么你可以使用JNI从你的java进程中获取这个库。