Junior — Middle
98
Какова основная роль класса Lock в C# и в каких ситуациях его применяют?
Answer from AI
sobes.tech AI
В C# ключевое слово lock используется для обеспечения потокобезопасного доступа к разделяемым ресурсам. Оно позволяет синхронизировать выполнение кода, чтобы в один момент времени только один поток мог выполнять определённый блок кода.
Основная роль lock — предотвратить состояние гонки (race condition) при одновременном доступе нескольких потоков к общим данным.
Пример использования:
private readonly object _lockObject = new object();
public void ThreadSafeMethod()
{
lock(_lockObject)
{
// Код, который должен выполняться атомарно
}
}
В ситуациях, когда несколько потоков могут одновременно изменять данные или вызывать методы, lock гарантирует, что только один поток сможет выполнить защищённый блок кода, остальные будут ждать своей очереди.