开发者

Java, C++, NIO, mmaped buffer, synchronization

Exposition:

I am on Linux / Mac.

Part of my code is in Java, part of my code is in C++.

They both have the same file mmapped for fast communication.

I want t开发者_开发技巧o synchronize the Java & C++ code.

I know the following:

1) given two threads in Java, I can use Locks / monitors.

2) given one piece of code in Java, one in C++, I can have them synchronize over tcp/ip

3) given two pieces of C++ code, that have mmaped an area of memory, I can have them synchronize using gcc's compare_and_swap on a integer in the mmaped region.

Question:

Given that part of my code is in Java, part of my code is in C++, can I somehow do (3) -- does the JVM support some type of atomic compare & swap ? So both my Java & C++ code can use this integer as a lock of sorts?

Thanks!


You could write a small C/C++ library that only purpose is to sync with your C++ code (using conventional IPC sync objects). Then you could would this library from your java process using JNI.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜