Sobes.tech
Junior — Middle

Kannst du die wichtigsten Synchronisationsprimitive auflisten, die von der Standardbibliothek bereitgestellt werden?

sobes.tech KI

Antwort von AI

In der Standardbibliothek von C# (im Namensraum System.Threading) sind die folgenden grundlegenden Synchronisationsprimitive verfügbar:

  • lock (Monitor) — sorgt für exklusiven Zugriff auf eine Ressource, indem es einen Codeabschnitt blockiert.
  • Mutex — ein interprozess-Mutex, der zur Synchronisation zwischen Prozessen verwendet wird.
  • Semaphore und SemaphoreSlim — beschränken die Anzahl der Threads, die gleichzeitig auf eine Ressource zugreifen können.
  • AutoResetEvent und ManualResetEvent — Ereignisse zur Signalisierung zwischen Threads.
  • ReaderWriterLockSlim — erlaubt mehreren Threads, eine Ressource gleichzeitig zu lesen, blockiert aber Schreibzugriffe.
  • SpinLock — eine leichte Primitive für kurze Sperren ohne Kontextwechsel.

Beispiel für die Verwendung von lock:

private readonly object _lockObj = new object();

void CriticalSection()
{
    lock(_lockObj)
    {
        // Code, der nur von einem Thread gleichzeitig ausgeführt werden soll
    }
}