Junior — Middle
Aké mechanizmy synchronizácie vlákien poznáte a môžete ich použiť vo svojich projektoch?
sobes.tech AI
Odpoveď od AI
V jazyku C# sa používajú rôzne mechanizmy na synchronizáciu vlákien:
- lock — jednoduchý spôsob blokovania kritickej sekcie kódu.
- Mutex — medziprocesové zamykanie, užitočné, keď je potrebné synchronizovať prístup medzi rôznymi procesmi.
- Semaphore a SemaphoreSlim — umožňujú obmedziť počet vlákien, ktoré súčasne vykonávajú určitú časť kódu.
- Monitor — flexibilnejší mechanizmus, na ktorom je založený lock.
- ManualResetEvent a AutoResetEvent — na signalizáciu medzi vláknami.
- Kolekcie súbežné z priestoru názvov System.Collections.Concurrent — zabezpečujú bezpečný prístup ku kolekciám z viacerých vlákien.
Príklad použitia lock:
private readonly object _lockObj = new object();
public void IncrementCounter()
{
lock(_lockObj)
{
// Kritická sekcia
counter++;
}
}