Каков принцип блокировки режима? - PullRequest
0 голосов
/ 14 августа 2010

Подобно блокам до тех пор, пока файл не будет воспроизведен , каков принцип и как это реализовать?

Ответы [ 2 ]

1 голос
/ 14 августа 2010

«блокирование» означает, что операция не вернет управление вызывающей стороне до тех пор, пока не будет выполнено «блокирование до».

Это может быть реализовано несколькими способами:

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

В случае медиа-плеера «блокировка до тех пор, пока файл не закончится, проигрывается« просто значит »ждет завершения воспроизведения мультимедийного файла перед возвратом ".

0 голосов
/ 14 августа 2010

позволяет потоку ожидать события, которое будет запущено другим потоком, когда файл будет завершен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...