Sobes.tech
Junior — Middle

Můžete vyjmenovat hlavní primitives synchronizace poskytované standardní knihovnou?

sobes.tech AI

Odpověď od AI

Ve standardní knihovně C# (v prostoru názvů System.Threading) jsou k dispozici následující základní primitives synchronizace:

  • lock (Monitor) — zajišťuje exkluzivní přístup k prostředku tím, že blokuje část kódu.
  • Mutex — mutex mezi procesy, používá se pro synchronizaci mezi procesy.
  • Semaphore a SemaphoreSlim — omezují počet vláken, která mohou současně přistupovat k prostředku.
  • AutoResetEvent a ManualResetEvent — události pro signalizaci mezi vlákny.
  • ReaderWriterLockSlim — umožňuje více vláknům číst prostředek současně, ale blokuje zápis.
  • SpinLock — lehký primitives pro krátké zámky bez přepínání kontextu.

Příklad použití lock:

private readonly object _lockObj = new object();

void CriticalSection()
{
    lock(_lockObj)
    {
        // kód, který má být vykonán pouze jedním vláknem najednou
    }
}