楼主:
ftpui (rei)
2014-04-25 17:21:33小弟有个问题想请教,
看到资料说明使用Linux提供的共享内存机制可让行程A,B之间可以沟通
但必须注意同步问题。
主要提到的情况是当一行程A正在写的同时,另一个行程B也正在读。
或者是两行程A,B都同时在写的情况,针对上述的情况就必须要去做行程间同步机制
我想说要解决上述问题为何不申请两块共享内存然后分别配给行程A,B当作它们各自的
写的空间,这样就不会发生两行程同时写同一块共享内存的问题。
另外在配合说当行程A写完讯息。会通知行程B来收讯息的条件。
这样就不会发生当一行程A正在写的时候,另一个行程B也正在读的情况
想请问是我想得太简单了吗?????
谢谢大家
就是因为要让两个process能够沟通才用share memory啊你拆成两块不同的内存,他们是要怎么沟通....= =
楼主:
ftpui (rei)
2014-04-25 19:17:00不能A去读B写的那块,B去读A写的那块吗
楼主:
ftpui (rei)
2014-04-25 20:23:00我有加另一个条件行程A写完讯息。会通知行程B来收讯息也就是说不会有A还在写,B就来读的情况
楼主:
ftpui (rei)
2014-04-25 20:25:00因为B一定是A写完通知它后,他才会来读走此笔资料
作者:
lmr3796 (Toro)
2014-04-26 20:17:00这样就算是一种同步机制啊XD
作者: yvb 2014-04-27 16:40:00
试着改成, 考虑有 N 个行程, A[1] ... A[N] 时的同步问题.
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2014-04-28 11:48:00要搞到这么复杂不如直接用个 queue system 算了...
作者: yvb 2014-04-28 12:42:00
啊,我的意思是原PO文章第一段,把 "行程A,B" 换成 "行程A1..AN"
作者: yvb 2014-04-28 12:47:00
而共享内存内容,可想像是内存中的数据库,也许比较能理解.
作者: yvb 2014-04-28 13:00:00
至于原PO第二段的情况,与其用共享内存来做,不如考虑其它方式
作者: yvb 2014-04-28 13:03:00
不如先去了解,有哪些 "行程间通讯" 的方式吧.
作者: madisces 2014-04-28 21:06:00
如果B一定要等A写完才去读,那分两个行程的意义?
作者: yvb 2014-04-29 23:00:00
楼上, A 和 B 除了读写以外, 难道就不能有各自要做的事吗?