Sobes.tech
Junior — Middle

Jaké mechanismy synchronizace vláken znáte a můžete je použít ve svých projektech?

sobes.tech AI

Odpověď od AI

V jazyce C# se pro synchronizaci vláken používají různé mechanismy:

  • lock — jednoduchý způsob blokování kritické sekce kódu.
  • Mutex — meziprocesové zamykání, užitečné, když je potřeba synchronizovat přístup mezi různými procesy.
  • Semaphore a SemaphoreSlim — umožňují omezit počet vláken, která současně vykonávají určitý úsek kódu.
  • Monitor — flexibilnější mechanismus, na kterém je založen lock.
  • ManualResetEvent a AutoResetEvent — pro signalizaci mezi vlákny.
  • Kolekce souběžné z prostoru jmen System.Collections.Concurrent — zajišťují bezpečný přístup ke kolekcím z více vláken.

Příklad použití lock:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock(_lockObj)
    {
        // Kritická sekce
        counter++;
    }
}