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