Sobes.tech
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 гарантирует, что только один поток сможет выполнить защищённый блок кода, остальные будут ждать своей очереди.