Java メソッドの同期に関する問題に直面しています。簡単に説明できれば幸いです。
2 つの異なるパッケージの 2 つの異なるクラスに 2 つの異なるメソッドがあります。何かのようなもの:
Package1
|_Class1
\MethodA
Package2
|_Class2
\MethodB
では、これら 2 つのメソッドを同期する必要がありますが、これはスレッドではありません。これまでのところ、2 つの異なるアプローチがあります。
共有セマフォ。
Package1
と の外側にPackage2
、次のような共有静的セマフォを作成します。
package Package3;
public class SemaphoreClass {
public static Semaphore;
}
とにかく、JVMがこれを共有セマフォと見なすかどうかはよくわかりません。
同期 (SharedClass.class)。
共有クラスを使用して、次のようにこれら 2 つのメソッドを同期します。
public void MethodA() {
synchronized (SharedClass.class) {
//...
}
と
public void MethodB() {
synchronized (SharedClass.class) {
//...
}
とにかく、これらは単なるアプローチです。私が達成しようとしていることを実装するための最良の方法は何かを聞きたいです。JVM 用の共有セマフォがあれば作業は簡単になりますが、これには解決策が必要であることはわかっています。前もって感謝します。