Back to questions
Junior — Middle
62
Можете объяснить, что подразумевается под термином 'блокировка' в контексте многопоточного программирования?
Companies where asked
Почтатех
Элисофт
Answer from AI
sobes.tech AI
В многопоточном программировании термин «блокировка» (lock) означает механизм синхронизации, который позволяет ограничить одновременный доступ нескольких потоков к общему ресурсу или критической секции кода. Это предотвращает состояние гонки и обеспечивает корректность данных.
Например, в C# для блокировки часто используется ключевое слово lock:
private readonly object _locker = new object();
void UpdateData()
{
lock(_locker)
{
// Код, который должен выполняться только одним потоком одновременно
}
}
Здесь, если один поток вошёл в блок lock, другие потоки, пытающиеся войти в этот же блок с тем же объектом _locker, будут ждать, пока первый поток не выйдет из блока. Таким образом достигается последовательный доступ к ресурсу.