2

博览会:

我在 Linux / Mac 上。

我的部分代码是用 Java 编写的,我的部分代码是用 C++ 编写的。

它们都具有相同的文件映射以实现快速通信。

我想同步 Java 和 C++ 代码。

我知道以下内容:

1)给定Java中的两个线程,我可以使用锁/监视器。

2) 给定一段 Java 代码,一段 C++ 代码,我可以让它们通过 tcp/ip 同步

3) 给定两个已映射内存区域的 C++ 代码,我可以使用 gcc 的 compare_and_swap 对映射区域中的整数进行同步。

问题:

鉴于我的部分代码是用 Java 编写的,我的部分代码是用 C++ 编写的,我能以某种方式做 (3) - JVM 是否支持某种类型的原子比较和交换?那么我的 Java 和 C++ 代码都可以使用这个整数作为某种锁吗?

谢谢!

4

1 回答 1

2

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

于 2010-01-10T10:37:53.773 回答