当前位置: 技术问答>linux和unix
Systerm V 消息队列在多线程中的应用问题 满意即给分
来源: 互联网 发布时间:2017-01-18
本文导语: 情景: 一个进程中有多个线程(posix线程),每个线程都一个读同一个消息队列的操作,且读操作设置为阻塞式的 问题: 1,多个线程同时读一条消息的时候,进程是能保证同一条消息只能被一个线程读取吗(我试...
情景:
一个进程中有多个线程(posix线程),每个线程都一个读同一个消息队列的操作,且读操作设置为阻塞式的
问题:
1,多个线程同时读一条消息的时候,进程是能保证同一条消息只能被一个线程读取吗(我试过貌似行)
2,消息队列对进程来说是互斥访问的,对同一个进程里的线程是怎么实现的
3,消息队列的互斥是在哪里实现的,读写的时候加锁吗
一个进程中有多个线程(posix线程),每个线程都一个读同一个消息队列的操作,且读操作设置为阻塞式的
问题:
1,多个线程同时读一条消息的时候,进程是能保证同一条消息只能被一个线程读取吗(我试过貌似行)
2,消息队列对进程来说是互斥访问的,对同一个进程里的线程是怎么实现的
3,消息队列的互斥是在哪里实现的,读写的时候加锁吗
|
1,多个线程同时读一条消息的时候,进程是能保证同一条消息只能被一个线程读取吗(我试过貌似行)
>> 的确如此,消息队列提供的函数是独占式操作。
2,消息队列对进程来说是互斥访问的,对同一个进程里的线程是怎么实现的
>>线程是进程的一种特殊形式。对进程安全的东西,对线程也没问题。
3,消息队列的互斥是在哪里实现的,读写的时候加锁吗
>>读写都有同步控制,具体参考linux kernel src
>> 的确如此,消息队列提供的函数是独占式操作。
2,消息队列对进程来说是互斥访问的,对同一个进程里的线程是怎么实现的
>>线程是进程的一种特殊形式。对进程安全的东西,对线程也没问题。
3,消息队列的互斥是在哪里实现的,读写的时候加锁吗
>>读写都有同步控制,具体参考linux kernel src
|
之前有人发帖问过,他给出的结论就是不加锁并发读是安全的。
消息队列这个东西都是随内核持续的,无论是POSIX还是SYSTEM V,所以这个并发安全性是内核实现的,没法关心。
man一下看看有没有提到。
消息队列这个东西都是随内核持续的,无论是POSIX还是SYSTEM V,所以这个并发安全性是内核实现的,没法关心。
man一下看看有没有提到。
|
消息队列的同步互斥由内核搞定
随便读写,不用担心
随便读写,不用担心
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。