Sobes.tech
Junior — Middle
91

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

Companies where asked
Элисофт

Answer from AI

sobes.tech AI

Механизм блокировки (Lock) в многопоточном программировании используется для обеспечения взаимного исключения при доступе к общим ресурсам. Его основная роль — предотвратить одновременное изменение данных несколькими потоками, что может привести к состояниям гонки и непредсказуемому поведению программы.

Когда один поток захватывает блокировку, другие потоки, пытающиеся получить ту же блокировку, будут ждать, пока она не освободится. Это гарантирует, что только один поток в данный момент может выполнять критическую секцию кода, связанную с общим ресурсом.

Пример на C#:

private readonly object _lockObj = new object();

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

Здесь lock гарантирует, что операция инкремента счетчика будет атомарной и не прервется другим потоком.