Sobes.tech
Junior — Middle

Tudja magyarázni, hogy mit értünk 'zárolás' alatt a több szálas programozás kontextusában?

sobes.tech MI

Válasz az MI-től

В многопоточном программировании термин «блокировка» (lock) означает механизм синхронизации, который позволяет ограничить одновременный доступ нескольких потоков к общему ресурсу или критической секции кода. Это предотвращает состояние гонки и обеспечивает корректность данных.

Например, в C# для блокировки часто используется ключевое слово lock:

private readonly object _locker = new object();

void UpdateData()
{
    lock(_locker)
    {
        // Код, который должен выполняться только одним потоком одновременно
    }
}

Здесь, если один поток вошёл в блок lock, другие потоки, пытающиеся войти в этот же блок с тем же объектом _locker, будут ждать, пока первый поток не выйдет из блока. Таким образом достигается последовательный доступ к ресурсу.