开发者

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

开发者 https://www.devze.com 2022-12-16 02:47 出处:网络
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.

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

精彩评论

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