查看: 1101|回复: 18
|
interprocess communication
[复制链接]
|
|
来,大家来讨论一下。。。
如果要做 interprocess communication,
你们会怎么做?
我现在有几个方法。。
1.用fifo pipe
2.socket pair
3. shared memory (sweemeng's 建议)
4. MP (sweemeng's 建议)
还有其他的吗?谢谢。
[ 本帖最后由 tensaix2j 于 20-2-2008 06:00 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 17-10-2007 02:37 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 17-10-2007 06:05 PM
|
显示全部楼层
erlang 用的方法呢,和thread相似但是不是thread。
他们沟通的方法是message passing。
[ 本帖最后由 sweemeng 于 17-10-2007 06:10 PM 编辑 ] |
|
|
|
|
|
|
|

楼主 |
发表于 17-10-2007 06:27 PM
|
显示全部楼层
那你的read /write 是 blocking 还是non blocking 的? |
|
|
|
|
|
|
|
发表于 17-10-2007 06:47 PM
|
显示全部楼层
huh?
哪一个?
shared memory看你这么用咯。posix的shared memory有define locking的function的咯。
erlang呢,是asynchronus shared nothing,是blocking 吧。
[ 本帖最后由 sweemeng 于 17-10-2007 06:57 PM 编辑 ] |
|
|
|
|
|
|
|

楼主 |
发表于 17-10-2007 07:04 PM
|
显示全部楼层
我今天要探讨的就是除了用哪一种mechanism,
还有就是说。。
当你 read/write 时, 要不要 停住整个program,直到read/write 有东西。。还是要跑asynchronous, read 时不要block...但我担心两边会 out of sync.
还有 error handling要怎样做才算好。 |
|
|
|
|
|
|
|
发表于 17-10-2007 07:05 PM
|
显示全部楼层
怎么说呢。
erlang呢,每个process有个queue的。所有的message会送到那个process的queue。
每个在queue里的东西会process。然后如果有新的task,送去queue咯。
http://fanf.livejournal.com/76075.html
这里有个比较好的解释。
其实我也是半筒水而已。
[ 本帖最后由 sweemeng 于 17-10-2007 07:12 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 17-10-2007 07:50 PM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 20-10-2007 07:02 PM
|
显示全部楼层
谢谢你的咨讯。等我做了详细研究在回来讨论。
不过,我想,还是会用bsd socket。。。 |
|
|
|
|
|
|
|
发表于 20-10-2007 09:51 PM
|
显示全部楼层
interprocess?
我是WINDOWS PROGRAMMER, 所以会用MSMQ |
|
|
|
|
|
|
|
发表于 20-10-2007 10:33 PM
|
显示全部楼层
先说,我不是很熟悉ms messaging queuing。但是从wikipedia。他不是用在server上吗?
这里的process是不同program instance。而且,不是全部软件可以用msmq的。 |
|
|
|
|
|
|
|
发表于 31-10-2007 04:27 PM
|
显示全部楼层
message queue 也可以用在XP上, 他的使用方法就是program 1 丢一个message到某个local private queue里,然后program 2 再吊一个event listener 来抓取message.
只要是在windows 作业系统,就可以用MSMQ了 |
|
|
|
|
|
|
|
发表于 31-10-2007 10:02 PM
|
显示全部楼层
原帖由 阿牙木 于 31-10-2007 04:27 PM 发表 
只要是在windows 作业系统,就可以用MSMQ了
知道就好...........
p.s: 不要忘记,世界上不只是有windows这个东西。 |
|
|
|
|
|
|
|
发表于 1-11-2007 08:26 AM
|
显示全部楼层
天才楼主在其他帖里的发帖都是围绕MS的,所以我就回答MS的方式咯. |
|
|
|
|
|
|
|
发表于 1-11-2007 09:44 AM
|
显示全部楼层
原帖由 阿牙木 于 20-10-2007 09:51 PM 发表 
interprocess?
我是WINDOWS PROGRAMMER, 所以会用MSMQ
我也是只知道msmq。。。最近在研究着。。。因为新的project要用到它。。 |
|
|
|
|
|
|
|
发表于 1-11-2007 10:31 AM
|
显示全部楼层
原帖由 stupidbanana 于 1-11-2007 09:44 AM 发表 
我也是只知道msmq。。。最近在研究着。。。因为新的project要用到它。。
说来听听,俺可能也要用到。。。。remote message |
|
|
|
|
|
|
|

楼主 |
发表于 1-11-2007 10:43 AM
|
显示全部楼层
posix shared mem 很简单,但win32的看到我头hin hin的 |
|
|
|
|
|
|
|

楼主 |
发表于 1-11-2007 10:49 AM
|
显示全部楼层
原帖由 阿牙木 于 1-11-2007 08:26 AM 发表 
天才楼主在其他帖里的发帖都是围绕MS的,所以我就回答MS的方式咯.
啊木,这年五月起我已经不是。net programmer了。。
这个project 要run 在一个solaris sun os 5.8的 machine...
但下个月还有另一个project要run on windows的...但不是dot net platform 的。。
而是用vb, vba, 还有vbscript的。。。到时候要请教你们了。。。 |
|
|
|
|
|
|
|
发表于 1-11-2007 11:02 AM
|
显示全部楼层
回复 #18 tensaix2j 的帖子
啊哈哈,那是我的UPDATE还不够 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|