【发布时间】:2013-03-29 16:35:08
【问题描述】:
我正在编写一个应用程序,它有一个消息队列和两个进程正在监听它。我怎样才能防止一个人先阅读它?
场景是: 有一个服务器应用程序读取队列并将消息发送到其他队列。 (一个服务器和多个具有不同消息队列的客户端)
但是客户端和服务器之间的消息因此来自同一个队列;我不能保证服务器在客户端线程(读取传入)之前接收消息。
你能帮我实现吗?
【问题讨论】:
标签: multithreading message-queue
我正在编写一个应用程序,它有一个消息队列和两个进程正在监听它。我怎样才能防止一个人先阅读它?
场景是: 有一个服务器应用程序读取队列并将消息发送到其他队列。 (一个服务器和多个具有不同消息队列的客户端)
但是客户端和服务器之间的消息因此来自同一个队列;我不能保证服务器在客户端线程(读取传入)之前接收消息。
你能帮我实现吗?
【问题讨论】:
标签: multithreading message-queue
我想我找到了解决方案。我的错误是没有正确阅读手册。
ssize_t msgrcv(int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, int msgflg);
参数 4 用于此目的。如果我为客户端设置消息标志就足够了!
【讨论】: