«Блокировка» означает, что вызывающий абонент ждет, пока вызываемый не завершит свою обработку. Например, «блокирующее чтение» из сокета ожидает, пока не будет данных для возврата; «неблокирующее» чтение не делает, оно просто возвращает указание (обычно подсчет) того, было ли что-то прочитано.
Вы слышите термин в основном о API, которые обращаются к ресурсам, которые не обязательно требуют внимания процессора - например, к вводу / выводу. Вы также слышите это в многопоточности: вызов из потока A в поток B может быть предназначен для «блокировки» (удержания потока A) до тех пор, пока поток B не достигнет соответствующего состояния для обработки или по крайней мере принятия запроса. (Наиболее очевидный пример - «соединение», которое обычно означает «Я, Поток A, хочу дождаться завершения потока B» - вы используете это при выходе из многопоточной программы.)