社区
VC.NET
帖子详情
求高手解释:不要通过共享内存来通信,而是通过通信来共享内存
Kerrie
2011-03-05 04:16:38
如标题所说,在同步开发中提到的,有哪位高手有亲身经历的吗,请解释解释。
...全文
301
5
打赏
收藏
求高手解释:不要通过共享内存来通信,而是通过通信来共享内存
如标题所说,在同步开发中提到的,有哪位高手有亲身经历的吗,请解释解释。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lizhibin11
2011-03-05
打赏
举报
回复
换言之就是视目的而定,假若要通信,就采取通信的方式,而不要采取共享内存这种方式;
假若要共享内存,那么必须以通信的方式来防止同步问题发生。
lizhibin11
2011-03-05
打赏
举报
回复
我来解释一下看看对不对
“不要通过共享内存来通信”
——假若以共享内存来代替进程间的通信,一个读一个写,读的进程可能会采取计时器等方式来读取共享内存的内容,但是读的进程无法确定写的进程已经写入完毕还是正在写入,假如正在写入,那么就有可能读到不完整的或者错误的数据。
“通过通信来共享内存”
——为了防止共享内存读写的这种同步问题出现,读的进程不应该采取计时器的方式,而是写的进程写入共享内存的前后,通过窗体消息或者管道或者socket等方式向写的进程分别发送写前和写后的简单的通知消息,读的进程收到消息后,再去读取,并回发读前和读后的消息,以通知写进程什么时候可以写入。
dianyancao
2011-03-05
打赏
举报
回复
两个说的一个内容,谁也离不开水
yidongliange4
2011-03-05
打赏
举报
回复
前半句是多线程/多进程通信的一种方式
后半句我也看不懂了
healer_kx
2011-03-05
打赏
举报
回复
WM_COPYDATA了解吗?
Android专用驱动
Ashmem是一个
共享内存
驱动,它与传统的
共享内存
相比,最大的特点是它是通过文件描述符来描述的,并且可以动态地进行分块管理。动态分块管理的目的是可以将部分不再使用了的内存交回给系统,非常适合内存较小的移动...
不要
通过
共享内存
来
通信
,要通过
通信
来
共享内存
“
不要
通过
共享内存
来
通信
,要通过
通信
来
共享内存
”,这句话是GO社区中非常经典的一句话,但是我们如何理解这句话呢? GO语言的协程(goroutine)是从进程、线程基础上发展而来的,它比进程线程更轻量级,但是都是...
Linux系统编程第05期:进程间
通信
共享内存
信号量 文件锁 信号signal.... 其中还包括system V和POSIX 两种接口标准,除此之外,Linux系统自身还扩展了自己的一套API接口用于进程间
通信
,比如signalfd、...
“
不要
通过
共享内存
来
通信
,而应该通过
通信
来
共享内存
”
如果在一个系统中,两个线程或进程,都可以读写同一块内存空间,这就叫做“内存共享”。直觉上会觉得这种方式非常方便。在内存共享的情景下,系统之间不需要做频繁的沟通,所有必要的信息都在内存中,想取就可以随时...
使用
通信
来
共享内存
,而不是通过
共享内存
来
通信
所有go语言的学习者都会看到这样一句话“使用
通信
来
共享内存
,而不是通过
共享内存
来
通信
”,这是go语言并发编程的座右铭,然而却不那么好理解。 为了搞清楚熟悉的锁模式并发编程和go的channel模式并发编程的区别,先...
VC.NET
7,540
社区成员
27,673
社区内容
发帖
与我相关
我的任务
VC.NET
.NET技术 VC.NET
复制链接
扫一扫
分享
社区描述
.NET技术 VC.NET
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章