我菜鸟,最近做一个东西,用消息队列实现进程间通信,想问下消息队列相关的数据。
1. 我用的系统是Fedora8,在这个系统下有以下结果:
$ cat /proc/sys/fs/mqueue/msgsize_max
8192
$ cat /proc/sys/fs/mqueue/queues_max
256
$ cat /proc/sys/fs/mqueue/msg_max
10
是不是在不同的LINUX系统中这三个数据有非常大的变化?因为我看到公司另外一个产品部门定义的消息队列号为6666,
还是说这个队列ID与队列数量其实不是对应的?
2. 我对msg_max为10这项数据没有概念,在Fedora8下用消息队列 最好是否 是使用多线程来接收
处理消息队列传递过来的数据,不然 会导致很多数据丢失还是通信很慢?因为我对消息队列是如何操作的不了解。
总之,最重要的是,当有较多数据需要传输时是否必须使用多线程处理,如果不用多线程会有哪些影响?
感激不尽。。。
------解决方案--------------------
消息队列不是进程间通讯使用得吗?线程本身就是存在于进程得地址空间,它们共享进程得资源的呀,多线程访问共有资源时用锁进行资源访问控制就行了,为什么会用到消息队列呢?你说的消息队列号是msgid,由ftok产生的?