Synchronisieren Sie zwei Methoden in verschiedenen Klassen (und verschiedenen Paketen)

Ich habe ein Problem mit der Synchronisierung von Java-Methoden. Hoffen wir, dass ich es kurz erklären kann:

Ich habe zwei verschiedene Methoden in zwei verschiedenen Klassen, in zwei verschiedenen Paketen. So etwas wie:

Package1
     |_Class1
            \MethodA

Package2
     |_Class2
            \MethodB

Ok, also jetzt muss ich diese beiden Methoden synchronisieren, die sindkeine Fäden. Bisher habe ich zwei verschiedene Ansätze:

Geteiltes Semaphor.

Erstellen Sie ein gemeinsames statisches Semaphor außerhalbPackage1 undPackage2, so etwas wie:

 package Package3;

 public class SemaphoreClass {

    public static Semaphore;

}

Ich weiß sowieso nicht, ob JVM dies für ein gemeinsames Semaphor halten würde.

Synchronisiert (SharedClass.class).

Verwenden einer gemeinsam genutzten Klasse zum Synchronisieren dieser beiden Methoden:

 public void MethodA() {
        synchronized (SharedClass.class) {
           //...
        }

und

public void MethodB() {
        synchronized (SharedClass.class) {
           //...
        }

Auf jeden Fall sind dies nur Ansätze. Ich würde gerne hören, wie ich das, was ich erreichen möchte, am besten umsetzen kann. Ein gemeinsames Semaphor für JVM würde die Dinge einfacher machen, aber ich weiß, dass es dafür eine Lösung geben muss. Danke im Voraus.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage