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