Junior — Middle
Pouvez-vous expliquer ce que signifie 'blocage' dans le contexte de la programmation multithread?
sobes.tech IA
Réponse de l'IA
В многопоточном программировании термин «блокировка» (lock) означает механизм синхронизации, который позволяет ограничить одновременный доступ нескольких потоков к общему ресурсу или критической секции кода. Это предотвращает состояние гонки и обеспечивает корректность данных.
Например, в C# для блокировки часто используется ключевое слово lock:
private readonly object _locker = new object();
void UpdateData()
{
lock(_locker)
{
// Код, который должен выполняться только одним потоком одновременно
}
}
Здесь, если один поток вошёл в блок lock, другие потоки, пытающиеся войти в этот же блок с тем же объектом _locker, будут ждать, пока первый поток не выйдет из блока. Таким образом достигается последовательный доступ к ресурсу.