C# Concurrency Teil 6: Locking
Dieser Blog erklärt verschiedene locking Mechanismen mit ihren Vor- und Nachteilen und listet bewährte Best Practices für locking auf. Das verwandte Problem der Code Reentrancy wird ebenfalls erklärt und gelöst.
In Teil 2 Die Gefahren von Multithreading wurde erklärt wie Datakorruption entsteht und dass man mit locking den Zugriff auf die Daten schützen kann. Im gleichen Teil wurde ebenfalls die Gefahr von Code Reentrancy erwähnt: ein Problem das Auftritt wenn der UI Thread freigegeben wird während des Wartens auf eine asynchrone Antwort und so die gleiche Methode nochmals aufgerufen werden kann.
Das Problem
Sobald mehrere Threads auf die gleiche Resource zugreifen wird es gefährlich. Aber nur wenn einer der Zugriffe schreibt, also den State ändert. READ MORE