代码之家  ›  专栏  ›  技术社区  ›  Halo

使用POSIX信号量检测请求

  •  0
  • Halo  · 技术社区  · 15 年前

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   Jonathan Leffler    15 年前

    标准方式:

    • 消费者等待信号量,让生产者指示消费者已经准备好消费了。
    • 当有什么东西准备好让消费者消费时,产生的信号就向信号量发出信号。

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

    如果需要运行所需的操作,则需要查看 POSIX 手册页面:

    进程间通信原语

    • SSECTL()
    • 半()
    • Simop.()

    POSIX IPC

    • Simi-闭包()
    • SimyExchange()
    • SimultGET值()
    • sem_初始化()
    • SimyOPEN()
    • SEMIN POST()
    • sem_timedwait()。
    • 扫描电镜
    • Simun-UNLink()
    • SimWayWAITE()