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