Nachteil von Locks: Programmierung ist nicht modular.
Anderer Ansatz: spekulative Nebenläufigkeit:
Transaktionen mit optimistischer Ausführung
- innerhalb einer Transaktion: Protokollierung der Speicherzugriffe
- Abschluß (Commit) der Transaktion nur,
wenn Protokoll konsistent ist
- sonst später erneut ausführen und Protokoll validieren
- eine abgebrochene Transaktion muß unbeobachtbar sein
Clojure: Transactions, Haskell: STM (das Typsystem hilft!)
Johannes Waldmann
2013-06-18