Synchronisieren

MatzeBS

Grünschnabel
Hallo,
ich bin mir irgendwie nicht sicher und wollt mal in die Runde fragen.

Angenommen ich habe ein ObjektA erzeugt. Dieses ObjektA wird in mehreren gleichzeitig laufenden Threads verwendet.
Die Threads rufen fooA() in dem ObjektA auf, welche wiederum gooX() in einem ObjektX aufruft.
In dieser Methode gooX() wird eine LinkedList gefüllt. Die Ausührung der Methode gooX() ist also schützenswert.

Muss sie jedoch in dieser Konstellation geschützt werden?

Schonmal Danke für Eure Antworten!
Matze
 
Ich würd mich eher fragen, ob die Liste an sich thread-safe, wie z.B. Vector, sein müsste...

Arbeitest du ausserhalb mit thread-safety auf einer Liste, anstatt innerhalb der Liste selber, wirst du, behaupte ich jetzt einfach mal ;-), mehr als einen synchronized-block benötigen.

gruss
slowfly
 
Ja Du hast recht. Das hatte ich nicht beachtet. Ich rufe mit einem weiteren Thread eine Methode auf, um die Liste wieder zu leeren.
Klar muss ich die Liste selber dann synchronisieren.
z.B.
LinkedList liste = (LinkedList) Collections.synchronizedList(new LinkedList);

Trotzdem interessiert es mich, wie es sich in der situation verhält, dass die Liste nur gleichzeitig gefüllt wird.
 

Neue Beiträge

Zurück