Sobes.tech
Junior — Middle

Ar galite išvardyti pagrindinius sriegių ir procesų sinchronizavimo mechanizmus?

sobes.tech AI

Atsakymas iš AI

Pagrindiniai siūlų ir procesų sinchronizavimo mechanizmai C# apima:

  • lock — užtikrina išskirtinį prieigą prie ištekliaus, blokuodamas kodo dalį kitiems siūlams.
  • Mutex — tarpprocesinis užrakinimo mechanizmas, leidžiantis sinchronizuoti prieigą tarp skirtingų procesų.
  • Semaphore ir SemaphoreSlim — riboja siūlų, galinčių vienu metu pasiekti išteklių, skaičių.
  • Monitor — lankstesnis užrakinimo mechanizmas su galimybe laukti ir pranešti siūlams.
  • AutoResetEvent ir ManualResetEvent — leidžia siūlams laukti signalo, kad galėtų tęsti darbą.
  • Interlocked — teikia atominius operacijų vykdymus virš kintamųjų, siekiant išvengti lenktynių sąlygų.

Pavyzdys, kaip naudoti lock:

private readonly object _locker = new object();

void IncrementCounter()
{
    lock (_locker)
    {
        // kritinė sekcija
        counter++;
    }
}