请问如何实现用管道在进程之间通信?能show一段简单的示例代码么(最好带点注释)?我也碰到过这个问题。最后用dbmopen将hash保存到*.dbm中,相当于还是写入了磁盘。谢谢。
----- Original Message -----From: msmouseSent: Wednesday, November 11, 2009 10:04 AMSubject: [PerlChina] Re: 请教:多进程中子进程的结果如何"回收"1。可否用多线程代替多进程? 那样就可以用共享内存了
2。可否用管道在进程之间通信? 最简单的就是获得子进程的标准输出句柄,子进程里面print到STDOUT上,父进程读那个句柄
----------------------------------
msmouse@ir.hit.edu.cn
msmouse@gmail.com2009/11/10 空格 <ribozyme2004@gmail.com>
具体点说,我要处理一个大散列。把每个键值加长变成四个字符串存到一个新散列中。因为加长后的字符串可能有重复,所以删除重复后结果散列所含的键值数组
不到原来的四倍。
我把初始散列分成了四份,然后开了四个子进程,每个进程跑一个,并生成一个结果散列。但是子进程跑完之后结果散列并不能保存在父进程的内存中。只能先都
写到磁盘上的一个临时文件里,然后再读出来消除重复,生成最终的结果散列。
我想知道能不能不用读写磁盘直接在内存中处理?或者要用多线程?
> 保留的意思指什么呢,在父进程的内存中保留,还是指硬盘上保留呢
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论