1

同期キーワードはJVMが1つのみで、JVMが2つ以上ある場合、すなわち1つ以上のJVMインスタンスが存在する場合に機能します。その場合、どのようにスレッドの安全性を確保できますか?共有メモリにアクセスする場合、複数のJVMまたはコンテナ間のJavaにおけるスレッドセーフティを達成するにはどうすればよいですか?

各コンテナは、それぞれ独自のインスタンスを作成します。 3つの独立したjvmインスタンスがあり、これらのインスタンスが同じアカウントでトランザクションクレジットまたはデビットを行っているとしたら、これらのトランザクションをシリアル化またはアトミックまたは相互排他的にするにはどうすればよいですか?誰かが最善のアプローチを伝えることができますか?

+1

かなり複雑で幅広いので、具体的なユースケースを指定することで質問の範囲を狭めることができます。 –

+1

これは難しい問題です。あなたのオプションは状況によって異なります。 –

+0

同じ質問が複数のコンピュータに適用されます。上記のように、あまりにも複雑で広範である。範囲を狭める。 – edharned

答えて

0

JVMによって提供されるSynchronizedキーワードとLockは、スタンドアロンアプリケーションでのみ機能するため、これらのテクノロジを使用してクラスタ内でスレッドセーフを維持することはできません。

これを行う一般的な方法、または最も簡単な方法は、リレーショナルデータベースによって提供されるトランザクションによるものです。

また、分散ロックを実装するために他の技術を使うこともできます。これは、私があなたがZookeeper、Redisを使用することができることを知っている限りです。

関連する問題