当前位置: 代码迷 >> 驱动开发 >> 关于Linux消息队列,该如何解决
  详细解决方案

关于Linux消息队列,该如何解决

热度:322   发布时间:2016-04-28 11:23:16.0
关于Linux消息队列
我菜鸟,最近做一个东西,用消息队列实现进程间通信,想问下消息队列相关的数据。
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产生的?