Обнаружение запросов с помощью семафоров Posix - PullRequest
0 голосов
/ 02 апреля 2010

Вы знаете, что мы можем использовать очереди сообщений с функцией mq_receive (); Каков хороший способ реализовать эту функциональность (вы знаете, ожидание, пока общие данные не будут изменены) с семафорами?

1 Ответ

1 голос
/ 02 апреля 2010

Стандартный способ:

  • Потребитель ожидает на семафоре производителя, чтобы указать, что потребитель готов что-то потреблять.
  • Продукт сигнализирует семафору, когда потребитель готов что-то съесть.

Если у вас несколько потребителей и несколько производителей, вы гарантируете, что у семафора достаточно диапазона, чтобы производители могли поставить в очередь несколько запросов, и вы уверены, что потребители знают, как обрабатывать, возможно, несколько из них, будучи активными одновременно. Все это - стандартная теория многопоточности (многопоточности).

Если вам нужно ознакомиться с необходимыми операциями, вам нужно обратиться к справочным страницам POSIX для:

Система V IPC

  • semctl ()
  • semget ()

POSIX IPC

  • sem_close ()
  • sem_destroy ()
  • sem_getvalue ()
  • sem_init ()
  • sem_open ()
  • sem_post ()
  • sem_timedwait ()
  • sem_trywait ()
  • sem_unlink ()
  • sem_wait ()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...