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 гарантирует, что операция инкремента счетчика будет атомарной и не прервется другим потоком.