Sobes.tech
Junior — Middle

Kādus pavedienu sinhronizācijas mehānismus jūs zināt un varat izmantot savos projektos?

sobes.tech AI

Atbilde no AI

C# valodā tiek izmantoti dažādi mehānismi pavedienu sinhronizācijai:

  • lock — vienkāršs veids, kā bloķēt kritisko koda sekciju.
  • Mutex — starpprocesu bloķēšana, noder, ja nepieciešams sinhronizēt piekļuvi starp dažādām procesiem.
  • Semaphore un SemaphoreSlim — ļauj ierobežot to pavedienu skaitu, kas vienlaikus izpilda noteiktu koda daļu.
  • Monitor — elastīgāks mehānisms, uz kura balstās lock.
  • ManualResetEvent un AutoResetEvent — signāla sūtīšanai starp pavedieniem.
  • Concurrency kolekcijas no System.Collections.Concurrent namespaces — nodrošina pavedienu drošu piekļuvi kolekcijām.

Piemērs lock izmantošanai:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock(_lockObj)
    {
        // Kritiskā sekcija
        counter++;
    }
}