免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: zhlei
打印 上一主题 下一主题

如何用select()管理消息队列? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-07-17 22:58 |只看该作者

如何用select()管理消息队列?

我想再重复上面的问题,select能不能同时检测队列和socket描述符?
如果能请赐教!

论坛徽章:
0
12 [报告]
发表于 2003-07-17 23:26 |只看该作者

如何用select()管理消息队列?

消息队列是不是文件描述符

关键是要分清这点
select可以操作文件描述符

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
13 [报告]
发表于 2003-07-18 11:35 |只看该作者

如何用select()管理消息队列?

一般来说,同时使用select()或poll()和SysV 消息队列会带来许多麻烦。SysV IPC的对象并不是用文件描述符来处理的,所以它们不能被传递给select()和 poll()。这里有几种解决方法,其粗暴程度各不相同:


完全放弃使用SysV IPC。

用fork(),然后让子进程来处理SysV IPC,然后用管道或套接口和父进程 说话。父进程则使用select()。

同上,但让子进程用select(),然后和父亲用消息队列交流。

安排进程发送消息给你,在发送消息后再发送一个信号。*警告*:要做好 这个并不简单,非常容易写出会丢失消息或引起死锁的程序。

论坛徽章:
0
14 [报告]
发表于 2003-07-18 14:04 |只看该作者

如何用select()管理消息队列?

呵呵,和我现在的清款一样,在socket 和MQ之间没法用select.只好在MQ写入dd时kill()通知.:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP