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
,CountdownEvent
undBarrier
)Faule Initialisierung (
Lazy<T>
undLazyInitializer
)Thread-lokale Speicherung (
ThreadStaticAttribute
,ThreadLocal<T>
, undGetData
/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
undMonitor.Pulse
für spezielle SignalisierungsszenarienNichtblockierende 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.