Sobes.tech
Junior — Middle

Каква е ролята и предназначението на механизма за блокиране (Lock) в многопоточната програмиране?

sobes.tech AI

Отговор от AI

Механизмът за блокиране (Lock) в многопоточната програмиране се използва за осигуряване на взаимно изключване при достъп до споделени ресурси. Неговата основна роля е да предотврати едновременната промяна на данни от няколко нишки, което може да доведе до състезателни условия и непредсказуемо поведение на програмата.

Когато една нишка придобие блокировката, други нишки, които се опитват да получат същата блокировка, ще чакат, докато тя не бъде освободена. Това гарантира, че само една нишка в даден момент може да изпълнява критичната секция на кода, свързана с общия ресурс.

Пример на C#:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock (_lockObj)
    {
        // Критична секция
        counter++;
    }
}

Тук lock гарантира, че операцията по увеличаване на брояча е атомарна и няма да бъде прекъсната от друг поток.