Junior — Middle
Qual è il ruolo e lo scopo del meccanismo di blocco (Lock) nella programmazione multithread?
sobes.tech AI
Risposta dell'AI
Механизм блокировки (Lock) в многопоточном программировании используется для обеспечения взаимного исключения при доступе к общим ресурсам. Его основная роль — предотвратить одновременное изменение данных несколькими потоками, что может привести к состояниям гонки и непредсказуемому поведению программы.
Когда один поток захватывает блокировку, другие потоки, пытающиеся получить ту же блокировку, будут ждать, пока она не освободится. Это гарантирует, что только один поток в данный момент может выполнять критическую секцию кода, связанную с общим ресурсом.
Пример на C#:
private readonly object _lockObj = new object();
public void IncrementCounter()
{
lock (_lockObj)
{
// Критическая секция
counter++;
}
}
Здесь lock гарантирует, что операция инкремента счетчика будет атомарной и не прервется другим потоком.