2

解説:

私はLinux/Macを使用しています。

私のコードの一部はJavaであり、私のコードの一部はC++です。

どちらも、高速通信のために同じファイルをmmapしています。

JavaとC++のコードを同期させたい。

私は次のことを知っています:

1)Javaで2つのスレッドが与えられた場合、ロック/モニターを使用できます。

2)Javaで1つのコード、C ++で1つのコードが与えられた場合、tcp/ipを介してそれらを同期させることができます

3)メモリの領域をmmapした2つのC ++コードが与えられた場合、mmapされた領域の整数に対してgccのcompare_and_swapを使用してそれらを同期させることができます。

質問:

コードの一部がJavaであり、コードの一部がC ++であるとすると、どういうわけか(3)-JVMはある種のアトミックコンペアアンドスワップをサポートしますか?では、私のJavaコードとC ++コードの両方で、この整数を一種のロックとして使用できますか?

ありがとう!

4

1 に答える 1

2

(従来のIPC同期オブジェクトを使用して)C++コードと同期することだけを目的とした小さなC/C++ライブラリを作成できます。次に、JNIを使​​用してJavaプロセスからこのライブラリを作成できます。

于 2010-01-10T10:37:53.773 に答える