2009年11月10日星期二

[PerlChina] Re: 请教:多进程中子进程的结果如何“回收”

请问如何实现用管道在进程之间通信?能show一段简单的示例代码么(最好带点注释)?我也碰到过这个问题。最后用dbmopen将hash保存到*.dbm中,相当于还是写入了磁盘。谢谢。
----- Original Message -----
From: msmouse
Sent: Wednesday, November 11, 2009 10:04 AM
Subject: [PerlChina] Re: 请教:多进程中子进程的结果如何"回收"

1。可否用多线程代替多进程? 那样就可以用共享内存了
2。可否用管道在进程之间通信? 最简单的就是获得子进程的标准输出句柄,子进程里面print到STDOUT上,父进程读那个句柄
----------------------------------
msmouse@ir.hit.edu.cn
msmouse@gmail.com


2009/11/10 空格 <ribozyme2004@gmail.com>
具体点说,我要处理一个大散列。把每个键值加长变成四个字符串存到一个新散列中。因为加长后的字符串可能有重复,所以删除重复后结果散列所含的键值数组
不到原来的四倍。
我把初始散列分成了四份,然后开了四个子进程,每个进程跑一个,并生成一个结果散列。但是子进程跑完之后结果散列并不能保存在父进程的内存中。只能先都
写到磁盘上的一个临时文件里,然后再读出来消除重复,生成最终的结果散列。
我想知道能不能不用读写磁盘直接在内存中处理?或者要用多线程?

On 11月10日, 下午9时24分, langq 235 <langq...@gmail.com> wrote:
> 保留的意思指什么呢,在父进程的内存中保留,还是指硬盘上保留呢


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: