Synchronisieren eines Objekts, das von mehreren Threads gemeinsam genutzt wird, auf das jedoch nicht gleichzeitig zugegriffen wird

Angenommen, ich habe ein gemeinsames Objekt mit Felddata. Mehrere Threads teilen sich einen Verweis auf dieses Objekt, um auf das Feld zuzugreifen. Die Threads greifen jedoch nie gleichzeitig auf das Objekt zu. Muss ich deklarierendata als flüchtig?

Eine solche Situation wäre die folgende:

Eine KlasseCounter definiert ein eindeutiges Feldvalue und eine Methodeincrement.Ein Thread inkrementiert den Zähler und erzeugt dann einen weiteren Thread, der den Zähler inkrementiert, usw.

Aufgrund der Logik des Programms gibt es keinen gleichzeitigen Zugriff auf den Zähler. Der Zähler wird jedoch über mehrere Threads hinweg gemeinsam genutzt. Muss der Counter volatil sein?

Eine andere Variante der Situation ist, wenn mehrere Threads ein Objekt X manipulieren, das reine Daten sind, aber ihre zeitliche Ausführung über ein anderes Objekt Y abwechseln (so dass niemals gleichzeitig auf X zugegriffen wird), das sich auf die Steuerung des gemeinsamen Zugriffs stützt (wait, notify, synchronize). Sollen Felder von Objekt X flüchtig sein?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage