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