Junior — Middle
Milliseid niiditõrke mehhanisme teate ja saate oma projektides kasutada?
sobes.tech AI
Vastus AI-lt
C# keel kasutatakse erinevaid mehhanisme lõngade sünkroniseerimiseks:
- lock — lihtne viis kriitilise koodi sektsiooni lukustamiseks.
- Mutex — protsessidevaheline lukustus, kas kasulik, kui on vaja sünkroniseerida juurdepääsu erinevate protsesside vahel.
- Semaphore ja SemaphoreSlim — võimaldavad piirata samaaegselt täidetavate lõngade arvu.
- Monitor — paindlikum mehhanism, millele põhineb lock.
- ManualResetEvent ja AutoResetEvent — signaalide saatmiseks lõngade vahel.
- System.Collections.Concurrent nimelahtrist pärit konkurentsivõimelised kogud — tagavad lõngade turvalise juurdepääsu kogudele.
Näide lock kasutamisest:
private readonly object _lockObj = new object();
public void IncrementCounter()
{
lock(_lockObj)
{
// Kriitiline sektsioon
counter++;
}
}