Sobes.tech
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++;
    }
}