社区
Linux/Unix社区
帖子详情
多个进程,同时读写消息队列,是否会冲突
nilesliu
2009-04-15 06:33:59
多个进程,同时读写消息队列,是否会冲突。
请问这个多个进程同时写消息队列,是否需要用mutex来进行同步啊。
...全文
2920
40
打赏
收藏
多个进程,同时读写消息队列,是否会冲突
多个进程,同时读写消息队列,是否会冲突。 请问这个多个进程同时写消息队列,是否需要用mutex来进行同步啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
40 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wuhong40
2010-12-15
打赏
举报
回复
在linux程序设计中有提到,第14章,消息队列与管道不通,不需要进程自己提供同步方法
wuhong40
2010-12-15
打赏
举报
回复
牛人 受教了
mymtom
2009-05-13
打赏
举报
回复
MQ由内核提供同步,不需要。
duppeng
2009-05-12
打赏
举报
回复
在进程间同讯时,消息队列不需要额外的同步措施,出自《计算机网络编程2》
threeleafzerg007
2009-05-09
打赏
举报
回复
[Quote=引用 20 楼 fetag 的回复:]
OK!来总结一下这个问题,因为我也不确定,所以写的东西未必正确,错误的地方,尽管拍砖!
我的内核代码是2.6.29.1。
C/C++ code//先看msgsnd()函数,它通过系统调用接口界面,进入内核执行,代码如下:SYSCALL_DEFINE4(msgsnd,int, msqid,structmsgbuf __user*, msgp, size_t, msgsz,int, msgflg)
{longmtype;if(get_user(mtype,&msgp->mtype))return-EFAULT;returndo_msgsnd(msqid, mtype, msgp->mtext, msgsz, msgflg);
}…
[/Quote]
赞,学习了
zhouxingyu896
2009-05-09
打赏
举报
回复
顶
关注
学习
zhj8727
2009-05-07
打赏
举报
回复
uping
嗨皮
2009-04-29
打赏
举报
回复
光一圈,看看上面写的,很是有理
olla168
2009-04-29
打赏
举报
回复
消息队列实际上是在内核态实现的,内核代码应该实现了互斥了,如果不放心自己再保护下~
xempo
2009-04-28
打赏
举报
回复
“喜欢与智者对话”,这是一句电影上的对白。
morris88
2009-04-28
打赏
举报
回复
貌似可以加精哦...
once_and_again
2009-04-28
打赏
举报
回复
[Quote=引用 17 楼 fetag 的回复:]
引用 16 楼 cyblueboy83 的回复:
我特意来听过儿解答问题的
惭愧啊!这个问题我确实不清楚,所以没敢回答,昨晚还特意为这个电话狒狒讨论了下
现在正在翻内核代码呢,没有准确依据不敢随便回,怕误人子弟啊...
[/Quote]
发现了,高手是一种态度.
大师是一种精神 .
pengxn
2009-04-28
打赏
举报
回复
一个消息队在读写的时候,也是会用到内存的锁机制的。
Bestrem_9
2009-04-26
打赏
举报
回复
不用加锁的,这个和共享内存不同的。一个消息队列可以被多个进程连接。。。
特别可靠
2009-04-24
打赏
举报
回复
应该内核会控制的吧。。
Cpp权哥
2009-04-23
打赏
举报
回复
不会冲突的,消息队列是由内核控制的,不需要用用户程序来考虑同步问题。
morris88
2009-04-22
打赏
举报
回复
呵呵,我很惭愧啊...
轻轻飘过...
xempo
2009-04-22
打赏
举报
回复
设置一些全局变量作标志,这样各线程根据这些标志的状态来作出相应的处理。
惭愧!是一些DOS经验。道理应该.....
NC
2009-04-22
打赏
举报
回复
多个进程读写同一消息队列不用加锁,消息不会串。直接用吧,没问题的。
独孤过儿
2009-04-21
打赏
举报
回复
[Quote=引用 16 楼 cyblueboy83 的回复:]
我特意来听过儿解答问题的
[/Quote]
惭愧啊!这个问题我确实不清楚,所以没敢回答,昨晚还特意为这个电话狒狒讨论了下
现在正在翻内核代码呢,没有准确依据不敢随便回,怕误人子弟啊...
加载更多回复(20)
FreeRTOS
进程
间通信-
消息队列
消息队列
是
进程
间的一种通信机制,实际项目运用很多。 1、什么是
消息队列
? 2、
消息队列
API函数 3、在
进程
间通信使用
消息队列
4、在中断中使用
消息队列
1.1、
消息队列
是什么?
消息队列
是realtime os 内核提供的服务,任务之间或者是中断中可以将一个消息放到队列中进行传递,freertos可以通过内核API获取到队列中的数据,freertos传递了实际数据。消息可...
多
进程
读写
锁
多
进程
编程的核心技术是
进程
间的同步——通信与互斥访问 一、
进程
间的通信 1、管道 2、System V信号量 3、共享内存 4、
消息队列
5、信号 6、套接字 二、
进程
间对资源的互斥访问 条件变量 信号量
读写
锁(记录锁) 自旋锁 原子锁(顺序锁) 记录锁: int fcntl(int
【Linux】Linux
进程
间通信——共享内存/
消息队列
/守护
进程
Linux——共享内存、守护
进程
、
消息队列
介绍
进程
间的通信方式:管道、
消息队列
、共享内存、信号量、socket
文章目录什么是
进程
通信?什么是互斥和同步?临界区
进程
互斥的软件实现方式屏蔽中断单标志检查法:自旋锁双标志先检查法双标志后检查法Peterson 解法TSL 指令
进程
通信解决忙等管道管道背后原理是什么?
消息队列
消息队列
面对的问题
消息队列
的变种共享内存信号量互斥和同步信号量信号Socket针对 TCP 协议通信的 socket 编程模型针对 UDP 协议通信的 socket 编程模型针对本地
进程
间通信的 socket 编程模型互斥量Futexes(以后再看)Pthreads 中的互斥量管程屏障读-复制-更新总结
进程
间通信方式——管道、
消息队列
、共享内存、信号量、信号、Socket
所谓的管道,就是内核里面的一串缓存。管道传输的数据是无格式的流且大小受限,从一端写从另一端读,一个管道有写端和读端两个文件描述符fd。我们可以使用 fork 创建子
进程
,创建的子
进程
会
复制父
进程
的文件描述符,两个
进程
就可以通过各自的 fd 写入和读取同一个管道文件实现跨
进程
通信了。 一般
进程
只用管道一端,另一个
进程
用另一端,避免
读写
混乱。在 shell 里通过管道符 | 将
多个
命令连接在一起,实际上也就是创建了
多个
子
进程
,它们之间通过匿名管道来通信。 管道的通信方式是效率低的,因此管道不适合
进程
间频繁地
Linux/Unix社区
23,114
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章