0

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

4

1 回答 1

1

标准方式:

  • 消费者在信号量上等待生产者指示有什么东西可供消费者消费。
  • 当有东西可供消费者消费时,产品会发出信号量。

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

如果您需要了解所需的操作,那么您需要查看POSIX手册页:

系统 V IPC

  • semctl()
  • semget()
  • semop()

POSIX工控机

  • sem_close()
  • sem_destroy()
  • sem_getvalue()
  • sem_init()
  • sem_open()
  • sem_post()
  • sem_timedwait()
  • sem_trywait()
  • sem_unlink()
  • sem_wait()
于 2010-04-02T18:45:40.400 回答