Sobes.tech
Junior — Middle

Kas saaksid loetleda peamised niitide ja protsesside sünkronsusmehhanismid?

sobes.tech AI

Vastus AI-lt

C#-s peamised niitide ja protsesside sünkroneerimise mehhanismid hõlmavad:

  • lock — tagab eksklusiivse juurdepääsu ressursile, blokeerides koodi osa teiste niitide jaoks.
  • Mutex — vaheprotsessiline lukustusmehhanism, mis võimaldab sünkroneerida juurdepääsu erinevate protsesside vahel.
  • Semaphore ja SemaphoreSlim — piiravad niitide arvu, mis saavad samaaegselt ressursile ligi.
  • Monitor — paindlikum lukustusmehhanism, millel on võimalus oodata ja niite teavitada.
  • AutoResetEvent ja ManualResetEvent — võimaldavad niitidel oodata signaali, et jätkata tööd.
  • Interlocked — pakub atomseid operatsioone muutujate üle, vältides võistlusolukordi.

Näide lock kasutamisest:

private readonly object _locker = new object();

void IncrementCounter()
{
    lock (_locker)
    {
        // kriitiline sektsioon
        counter++;
    }
}