Junior — Middle
Môžeš vymenovať hlavné mechanizmy synchronizácie vlákien a procesov?
sobes.tech AI
Odpoveď od AI
Hlavné mechanizmy synchronizácie vlákien a procesov v C# zahŕňajú:
- lock — zabezpečuje výlučný prístup k zdroju, blokujúc úsek kódu pre iné vlákna.
- Mutex — medziprocesný mechanizmus zámku, ktorý umožňuje synchronizáciu prístupu medzi rôznymi procesmi.
- Semaphore a SemaphoreSlim — obmedzujú počet vlákien, ktoré môžu súčasne pristupovať ku zdroju.
- Monitor — flexibilnejší mechanizmus zámku s možnosťou čakania a oznámenia vlákien.
- AutoResetEvent a ManualResetEvent — umožňujú vláknam čakať na signál na pokračovanie.
- Interlocked — poskytuje atómové operácie nad premennými na prevenciu súťažných podmienok.
Príklad použitia lock:
private readonly object _locker = new object();
void IncrementCounter()
{
lock (_locker)
{
// kritická sekcia
counter++;
}
}