Junior — Middle
Welche Mechanismen zur Thread-Synchronisation kennen Sie und können Sie in Ihren Projekten verwenden?
sobes.tech KI
Antwort von AI
In C# werden verschiedene Mechanismen zur Thread-Synchronisation verwendet:
- lock — einfacher Weg, einen kritischen Abschnitt des Codes zu sperren.
- Mutex — interprozessuale Sperre, nützlich, wenn der Zugriff zwischen verschiedenen Prozessen synchronisiert werden muss.
- Semaphore und SemaphoreSlim — erlauben es, die Anzahl der Threads zu begrenzen, die gleichzeitig einen bestimmten Codeabschnitt ausführen.
- Monitor — flexibler Mechanismus, auf dem lock basiert.
- ManualResetEvent und AutoResetEvent — für die Signalisierung zwischen Threads.
- Concurrent Collections aus dem Namespace System.Collections.Concurrent — bieten thread-sicheren Zugriff auf Sammlungen.
Beispiel für die Verwendung von lock:
private readonly object _lockObj = new object();
public void IncrementCounter()
{
lock(_lockObj)
{
// Kritischer Abschnitt
counter++;
}
}