Sobes.tech
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++;
    }
}