Fragen zu Java RMI und Thread-Synchronisierung

Ich habe zwei Fragen zu Java RMI und zur Thread-Synchronisation:

1) Wenn ich meine RMI-Remotemethoden synchron implementiere, schließen sie sich garantiert gegenseitig aus? Ich muss sicherstellen, dass keine zwei meiner RMI-Methoden (für Clients angebotene Methoden) gleichzeitig ausgeführt werden.

2) Ich habe eine Methode, die der Server regelmäßig ausführt. Es wird verwendet, um Aufräumarbeiten durchzuführen. Ich muss sicherstellen, dass diese bestimmte Methode nicht ausgeführt wird, wenn eine RMI-Methode von Remoteclients ausgeführt / verwendet wird. Wenn diese Methode ausgeführt wird, sollten keine RMI-Aufrufe möglich sein. Das heißt Kunden müssen warten. Irgendeine Idee, wie ich das machen kann? Ich habe über Sperren gelesen, weiß aber nicht, wie ich sie in diesem Szenario verwenden soll.

Ich habe überlegt, RMI-Methoden als statisch zu implementieren und diese Bereinigungsmethode in die RMI-Schnittstelle aufzunehmen, aber dies scheint keine elegante Methode zur Lösung des Problems zu sein.

Ich habe auch die Bereinigungsmethode in der RMI-Oberfläche als synchronisiert geschrieben. Als ich es zum Testen ausführte, schien es keine Kollisionen zwischen den Methoden zu geben, aber ich kann nicht sicher sein.

Vielen Dank für Ihre Zeit und Antworten.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage