Встречается на собеседованиях • сегодня
Что такое Lock
lock в C# используется для синхронизации доступа к общему ресурсу в многопоточных приложениях, предотвращая race condition. Это ключевое слово обеспечивает эксклюзивную блокировку объекта на время выполнения критической секции кода.
Пример:
csharp
private static readonly object _lockObj = new object();
private static int _counter = 0;
public void Increment()
{
lock (_lockObj)
{
_counter++;
}
}Важные нюансы:
- Объект для блокировки должен быть
readonlyи ссылочного типа (обычноobject) - Избегайте блокировки
this,Typeили публичных объектов - Не выполняйте долгие операции внутри
lock - Используйте
Monitor.TryEnterдля таймаутов
Deadlock может возникнуть при неправильном порядке блокировок.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
