Java-vermeiden von race-Bedingung OHNE synchronized/lock

Zur Vermeidung von race-Bedingung, können wir synchronisieren die schreib-und Zugriffs-Methoden auf die gemeinsamen Variablen, sperren Sie diese Variablen in anderen threads.

Meine Frage ist, ob es andere (bessere) Möglichkeiten zur Vermeidung von race-condition? Sperre machen das Programm zu langsam.

Was ich gefunden habe sind:

  • mit Atomarer Klassen, wenn es nur eine shared-variable.
  • mit einem unveränderlichen container für multi-shared-Variablen und erklären, dass diese container-Objekt mit volatile. (Ich fand diese Methode aus dem Buch "Java Concurrency in Practice")

Ich bin mir nicht sicher, ob Sie schneller als syncnronized Weg, gibt es andere, bessere Methoden?

Dank

Das sind beide gute alternativen. Es gibt viele alternativen, die verwendet werden können. Die Anwendbarkeit der einzelnen hängt von Ihren Umständen, und was genau Sie versuchen zu erreichen. Können Sie uns ein wenig mehr Details?

InformationsquelleAutor cn1h | 2011-12-01

Schreibe einen Kommentar