Richtiges Locking in Multithread-Programmen
Hier ein paar Regeln zur richtigen Verwendung von lock():
- Das Objekt auf das gelockt wird sollte nur innerhalb der Klasse sichtbar sein in der es verwendet wird. Mit Vorteil wird dazu ein eigenes Objekt erstellt, z.B. mit:
private object myLock = new object();
- Zuweisungen (von Referenzen und Integer-Zahlen) sind immer atomare Operationen und benötigen deshalb kein lock! Anders sieht es aus bei 64-bit Datentypen (z.B. long, decimal) auf einem 32-bit System.
- Vielfach lässt sich ein lock()-Block durch Verwendung einer der Hilfsfunktionen der Interlocked-Klasse vermeiden.
Kommentare
Kommentare sind geschlossen.