当前位置: 技术问答>linux和unix
(+)急数,Solaris8下的消息队列问题!!!
来源: 互联网 发布时间:2015-01-20
本文导语: 各位大侠,在Solaris8上开发时,用消息队列进行进程间通信的时候发现消息队列所能容纳的字节数有限制,我已经将之改为4M大小(用msgctl()函数),并用ipcs -o查看,该消息队列字节总数限制确实已经改为4M的大小,但是在运行过...
各位大侠,在Solaris8上开发时,用消息队列进行进程间通信的时候发现消息队列所能容纳的字节数有限制,我已经将之改为4M大小(用msgctl()函数),并用ipcs -o查看,该消息队列字节总数限制确实已经改为4M的大小,但是在运行过程中又发现该队列所包含的字节数最多不会超过80K字节大小,消息队列中的包的总数不会超过40个(每个包的长度为2K字节),请问为什么?
|
指定参数,从新编译内核.
另外,传递这样大的数据量,我建议你使用共享内存.这样,效率可能会更高一些.
另外,传递这样大的数据量,我建议你使用共享内存.这样,效率可能会更高一些.
|
用共享内存吧:
进程A将数据写入共享内存,发送一个信号(如SIGUSR1)给进程B,进程先阻塞,收到SIGUSR1信号时再去读共享内存的数据。
共享内存里设一个标志位,有MEM_IDLE和MEM_WORK两种状态,A写数据后状态也要改为MEM_WORK,B处理完后改回为MEM_IDLE.
进程A将数据写入共享内存,发送一个信号(如SIGUSR1)给进程B,进程先阻塞,收到SIGUSR1信号时再去读共享内存的数据。
共享内存里设一个标志位,有MEM_IDLE和MEM_WORK两种状态,A写数据后状态也要改为MEM_WORK,B处理完后改回为MEM_IDLE.
|
用共享内存吧:
进程A将数据写入共享内存,发送一个信号(如SIGUSR1)给进程B,进程B先阻塞,收到SIGUSR1信号时再去读共享内存的数据。
共享内存里设一个标志位,有MEM_IDLE和MEM_WORK两种状态,A写数据后状态也要改为MEM_WORK,B处理完后改回为MEM_IDLE.
进程A将数据写入共享内存,发送一个信号(如SIGUSR1)给进程B,进程B先阻塞,收到SIGUSR1信号时再去读共享内存的数据。
共享内存里设一个标志位,有MEM_IDLE和MEM_WORK两种状态,A写数据后状态也要改为MEM_WORK,B处理完后改回为MEM_IDLE.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。