免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3784 | 回复: 12
打印 上一主题 下一主题

关于进程线程混和使用中unix消息队列使用问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-30 17:01 |只看该作者 |倒序浏览
小弟在AIX 5L上边写一个简单的C/S程序,用系统的消息队列传递报文,但是由于客户端采用进程线程混合调用的方式,就不知道消息队列中的消息类别该用什么代替,我曾经创建一块共享内存做计数器,用计数器中的数据作为消息类别,但是对速度有较大影响。是在不知道该怎么办,哪位高人指点一下:([/i]

论坛徽章:
0
2 [报告]
发表于 2005-05-30 17:22 |只看该作者

关于进程线程混和使用中unix消息队列使用问题

感觉这个问题不简单,自己顶一下!

论坛徽章:
0
3 [报告]
发表于 2005-05-30 17:39 |只看该作者

关于进程线程混和使用中unix消息队列使用问题

可能是我描述不清楚吧,这个问题是这样的,我的客户端原来采用进程方式调用,这样我每次取进程ID作为msgbuf结构中的mtype,但是后来调用方式改变了,在每个进程里面都要创建多个线程做某项工作,这样的话就会出现串包现象,如果改用线程ID作为mtype,也会出现串包,用随机数吧又不敢保证它不重复,用计数器速度会限制,现在就是想问问系统还有没有别的唯一值可用的?各位高手,千万别不屑一顾呀。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-05-30 18:34 |只看该作者

关于进程线程混和使用中unix消息队列使用问题

(线程号<<16)  + 进程号
假设线程号和进程号都<65536

论坛徽章:
0
5 [报告]
发表于 2005-05-30 19:54 |只看该作者

关于进程线程混和使用中unix消息队列使用问题

这种方法看起来不错,但是现在那些系统进程ID都排到上百万了,怎么能<65536? any way,多谢。

论坛徽章:
0
6 [报告]
发表于 2005-05-31 09:38 |只看该作者

关于进程线程混和使用中unix消息队列使用问题

Linux吗?瞎说一句:或许HZ可用呢

论坛徽章:
0
7 [报告]
发表于 2005-05-31 14:20 |只看该作者

关于进程线程混和使用中unix消息队列使用问题

hehe ,如果是Linux就好了,那样直接取进程号,可惜是AIX 5L 5.2,进程ID超长,不好控制。

论坛徽章:
0
8 [报告]
发表于 2005-05-31 17:52 |只看该作者

关于进程线程混和使用中unix消息队列使用问题

自己生成一个唯一ID,当然要控制好不要重复就可以。。。

论坛徽章:
0
9 [报告]
发表于 2005-06-01 08:44 |只看该作者

关于进程线程混和使用中unix消息队列使用问题

不用消息队列不就是了?

论坛徽章:
0
10 [报告]
发表于 2005-06-01 09:14 |只看该作者

关于进程线程混和使用中unix消息队列使用问题

使用自己的计数器是最好办法,速度不是问题,首先互斥区很小,只有一个no++的代码,再者锁的速度很快,还有如果你觉得线索太多抢得厉害,你可以做计数器组,分组使用,每个计数器涵盖不同的数值范围。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP