当前位置:  技术问答>linux和unix

Systerm V 消息队列在多线程中的应用问题 满意即给分

    来源: 互联网  发布时间:2017-01-18

    本文导语:  情景: 一个进程中有多个线程(posix线程),每个线程都一个读同一个消息队列的操作,且读操作设置为阻塞式的 问题: 1,多个线程同时读一条消息的时候,进程是能保证同一条消息只能被一个线程读取吗(我试...

情景:
一个进程中有多个线程(posix线程),每个线程都一个读同一个消息队列的操作,且读操作设置为阻塞式的

问题:
1,多个线程同时读一条消息的时候,进程是能保证同一条消息只能被一个线程读取吗(我试过貌似行)
2,消息队列对进程来说是互斥访问的,对同一个进程里的线程是怎么实现的
3,消息队列的互斥是在哪里实现的,读写的时候加锁吗

|
1,多个线程同时读一条消息的时候,进程是能保证同一条消息只能被一个线程读取吗(我试过貌似行)
>> 的确如此,消息队列提供的函数是独占式操作。
2,消息队列对进程来说是互斥访问的,对同一个进程里的线程是怎么实现的
>>线程是进程的一种特殊形式。对进程安全的东西,对线程也没问题。
3,消息队列的互斥是在哪里实现的,读写的时候加锁吗
>>读写都有同步控制,具体参考linux kernel src

|
之前有人发帖问过,他给出的结论就是不加锁并发读是安全的。

消息队列这个东西都是随内核持续的,无论是POSIX还是SYSTEM V,所以这个并发安全性是内核实现的,没法关心。

man一下看看有没有提到。

|
消息队列的同步互斥由内核搞定
随便读写,不用担心

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 安装FEDORA后,进不了WINXP;重装WINXP,复制完必要的文件后,第一次重启就提示MISSING OPERATING SYSTERM


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3