Ich lese das Buch Java Concurrency in der Praxis. In Kapitel 15 sprechen sie über die nicht blockierenden Algorithmen und die compare-and-swap-Methode (CAS).Java Concurrency: CAS vs Sperren
Es wird geschrieben, dass CAS viel besser als die Sperrmethoden durchführen. Ich möchte die Leute fragen, die bereits mit diesen beiden Konzepten gearbeitet haben und möchten gerne hören, wann Sie welches dieser Konzepte bevorzugen? Ist es wirklich so viel schneller?
Für mich ist die Verwendung von Sperren viel klarer und einfacher zu verstehen und vielleicht sogar besser zu halten (bitte korrigieren Sie mich, wenn ich falsch bin). Sollten wir uns wirklich darauf konzentrieren, unseren konkurrierenden Code in Bezug auf CAS zu erstellen, anstatt Sperren zu verwenden, um einen besseren Leistungsschub zu erzielen, oder ist Nachhaltigkeit wichtiger?
Ich weiß, es gibt vielleicht keine strenge Regel, wann was zu verwenden ist. Aber ich möchte nur einige Meinungen, Erfahrungen mit dem neuen Konzept von CAS hören.
Ich stimme zu, setzen Akzent auf * Kosten der Berechnung eines neuen Wertes *. Oft ist es so groß, dass die nicht-lockende Strategie zu lock-based verliert. –