Junior — Middle
Koje mehanizme za sinhronizaciju niti poznajete i možete koristiti u svojim projektima?
sobes.tech АИ
Одговор од АИ
U C#-u se koriste različiti mehanizmi za sinhronizaciju niti:
- lock — jednostavan način za blokiranje kritične sekcije koda.
- Mutex — međuprocesno zaključavanje, korisno kada je potrebno sinhronizovati pristup između različitih procesa.
- Semaphore i SemaphoreSlim — omogućavaju ograničavanje broja niti koje istovremeno izvršavaju određeni deo koda.
- Monitor — fleksibilniji mehanizam na kojem se zasniva lock.
- ManualResetEvent i AutoResetEvent — za signalizaciju između niti.
- Kolekcije konkurentne iz prostora imena System.Collections.Concurrent — obezbeđuju siguran pristup kolekcijama iz više niti.
Primer korišćenja lock:
private readonly object _lockObj = new object();
public void IncrementCounter()
{
lock(_lockObj)
{
// Kritična sekcija
counter++;
}
}