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++;
}
}