«блокирование» означает, что операция не вернет управление вызывающей стороне до тех пор, пока не будет выполнено «блокирование до».
Это может быть реализовано несколькими способами:
- Передать ответственность за блокировку кому-то еще.Например, позвоните
pthread_mutex_lock
, который может заблокировать.Это делает ваш функциональный блок тоже.Другими функциями, выполняющими это, являются read
и любой другой системный вызов, который говорит, что может блокировать. - Spin.Другими словами, есть некоторый код, который выглядит как
while (!condition) {}
.Это поглотит все ядро ЦП, поэтому не рекомендуется, если вы собираетесь блокировать какое-то значительное время. - Используйте обработчик сигнала.Вызовите
sleep(5000)
или что-то подобное, и завершите спящий режим с помощью SIGALARM
или другого асинхронного метода.
В случае медиа-плеера «блокировка до тех пор, пока файл не закончится, проигрывается« просто значит »ждет завершения воспроизведения мультимедийного файла перед возвратом ".