Thread-safe addieren und mehr mit Interlocked

Thread-safe addieren und mehr mit Interlocked

Von Jan Suchotzki

Bereits im LernMoment “Ist dein Singleton thread-safe?” hast du die Klasse Interlocked verwendet. Es handel sich dabei um eine statische Klasse im Namensraum System.Threading. Somit ist sie nicht Bestandteil der TPL. Die Klasse existiert schon wesentlich länger als die TPL, aber du kannst sie auch im Kontext von TPL einsetzen.

Die Grundidee dieser Klasse ist, dass einfache Operationen wie Add, Increment und Decrement als atomare Operationen bereitgestellt werden. In C# sind nämlich auch Operatoren wie ++ oder -- nicht atomar und somit auch nicht thread-safe.

Wie du die einfachen Methoden dieser Klasse verwendest ist selbsterklärend. In den Links unten findest du weitere Informationen. Zusätzlich wird es bald auch einen eigenen LernMoment zu dieser Klasse geben. In dem wirst du insbesondere erfahren wie Interlocked, lock und volatile zusammenhängen.

  • Die Beschreibung der Klasse auf MSDN ist mal wieder unglaublich schlecht bzw. teilweise gar nicht übersetzt.
  • Peter Mandl, Autor des Buches “Grundkurs Betriebssysteme”, stellt in einem Unterkapitel ebenfalls die Klasse vor.

Viel Spaß beim atomaren Addieren aus unterschiedlichen Threads

Jan

PS: Hast du Fragen zu diesem InspirationsMoment, oder anderen Themen auf LernMoment.de? Dann schicke mir eine E-Mail