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
}
}