Kapitel 21. Fortgeschrittenes Threading

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Wir haben Kapitel 14 mit den Grundlagen des Threading als Vorläufer von Tasks und Asynchronität begonnen. Wir haben gezeigt, wie man einen Thread startet und konfiguriert, und wichtige Konzepte wie Thread-Pooling, Blocking, Spinning und Synchronisierungskontexte behandelt. Außerdem haben wir Locking und Thread Safety vorgestellt und das einfachste Signalisierungskonstrukt, ManualResetEvent, demonstriert.

Dieses Kapitel macht da weiter, wo wir in Kapitel 14 mit dem Thema Threading aufgehört haben. In den ersten drei Abschnitten gehen wir näher auf Synchronisierung, Locking und Thread Safety ein. Dann behandeln wir:

  • Nicht-exklusive Sperren (Semaphore und Leser/Schreiber-Sperren)

  • Alle Signalkonstrukte (AutoResetEvent, ManualResetEvent, Countdow⁠n​Event und Barrier)

  • Faule Initialisierung (Lazy<T> und LazyInitializer)

  • Thread-lokale Speicherung (ThreadStaticAttribute, ThreadLocal<T>, und GetData/SetData)

  • Timer

Das Thema Einfädeln ist so umfangreich, dass wir zusätzliches Material online gestellt haben, um das Bild zu vervollständigen. Unter http://albahari.com/threading findest du eine Diskussion über die folgenden, eher geheimnisvollen Themen:

  • Monitor.Wait und Monitor.Pulse für spezielle Signalisierungsszenarien

  • Nichtblockierende Synchronisierungstechniken für die Mikrooptimierung (Interlocked, Speicherbarrieren, ...

Get C# 12 in einer Kurzfassung now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.