使用Posix信号量检测请求

时间:2010-04-02 18:29:38

标签: c request posix semaphore

您知道我们可以使用带有函数mq_receive()的消息队列;使用信号量实现该功能(您知道,等待共享数据更改)的好方法是什么?

1 个答案:

答案 0 :(得分:1)

标准方式:

  • 消费者等待生产者的信号量,表明消费者已准备好消费。
  • 当有消费者准备好消费的东西时,产品就会发出信号。

如果您有多个使用者和多个生产者,则可以确保信号量具有足够的范围以允许生产者对多个请求进行排队,并确保消费者知道如何处理其中一些可能同时处于活动状态。所有这些都是标准的多处理(多线程)理论。

如果您需要对所需的操作进行细分,那么您需要查看POSIX手册页:

System V IPC

  • 了semctl()
  • 了semget()
  • 执行semop()

POSIX IPC

  • sem_close()
  • sem_destroy()
  • sem_getvalue()
  • sem_init()
  • sem_open()
  • sem_post()
  • sem_timedwait()
  • sem_trywait()在
  • sem_unlink()
  • sem_wait()