Подтвердить что ты не робот

Что означает термин "блокировка" в программировании?

Может ли кто-то предоставить определение непрофессионала и использовать его?

4b9b3361

Ответ 1

"Блокировка" означает, что вызывающий абонент ждет, пока вызывающая сторона не завершит свою обработку. Например, "блокировка чтения" из сокета ждет, пока не будут возвращены данные; "неблокирующее" чтение не делает, оно просто возвращает указание (обычно количество) о том, что-то было прочитано.

Вы слышите термин в основном вокруг API, которые получают доступ к ресурсам, которые не обязательно требуют внимания ЦП - например, ввода-вывода. Вы также слышите это в многопоточном режиме: вызов от потока А к потоку В может быть сконструирован так, чтобы "блокировать" (удерживать поток А), пока нить В не достигнет соответствующего состояния для обработки или, по крайней мере, не примет запрос. (Самый очевидный пример: "join", который обычно означает "I, Thread A, хотите дождаться окончания Thread B" - вы используете это при выходе из многопоточной программы.)

Ответ 2

Простыми словами: если вы вызываете функцию, которая останавливает выполнение программы, пока пользователь не выполнит какое-либо действие (или какое-либо другое действие, которое ваша программа не контролирует), этот вызов называется блокирующим вызовом.