Sobes.tech
Junior — Middle

Aká je úloha a účel mechanizmu zámku (Lock) v viacvláknovom programovaní?

sobes.tech AI

Odpoveď od AI

Механизам за блокирање (Lock) у мулти-тред програмирању се користи за обезбеђивање међусобног искључења при приступу заједничким ресурсима. Његова главна улога је да спречи истовремену измену података од стране више нити, што може довести до тркаћих услова и непредвидљивог понашања програма.

Када једна нит стекне блокаду, друге нити које покушавају да добију исту блокаду ће чекати док се она не ослободи. Ово гарантује да само једна нит у датом тренутку може извршавати критични сегмент кода повезан са заједничким ресурсом.

Пример у C#:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock (_lockObj)
    {
        // Критични сегмент
        counter++;
    }
}

Овде, lock гарантује да је операција инкрементације бројача атомска и да неће бити прекинута од стране друге нити.