2017-07-22 1 views
-1

ich das Buch lese Learning Concurrent Programming in Scala(2nd), gibt es einen Absatz über Immutable objects and final fields in Kapitel 2Concurrency Verhalten für die Unveränderliche Objekte und letzten Felder

Wir haben gesagt, dass Programme müssen passiert-vor Beziehungen aufzubauen, um Daten Rennen zu vermeiden, aber es gibt eine Ausnahme von dieser Regel. Wenn ein Objekt nur endgültige Felder enthält und der Verweis auf das umschließende Objekt für einen anderen Thread nicht sichtbar wird, bevor der Konstruktor abgeschlossen wird, wird das Objekt als unveränderlich betrachtet und kann ohne Synchronisierung zwischen den Threads geteilt werden.

Können mir einige helfen, mehr zu erklären und zu erklären? Ich verstehe es nicht ganz.

würden einige Code hilfreich sein

+5

Was Teil (e) verstehst du nicht? Welche Rolle (n) * verstehst du? –

Antwort

1

Synchronisation ist eine Bestellung für Threads über den Aufbau Werte innerhalb des Objekts durch Synchronisation geschützt zu ändern. Wenn alle Felder endgültig sind, kann dieses Objekt nicht geändert werden und die Synchronisation ist redundant.

Verwandte Themen