2009年11月11日星期三

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

用邮箱收论坛里的帖子的,所以看自己的回帖要设置一下

----- Original Message -----
From: "空格" <ribozyme2004@gmail.com>
To: "PerlChina Mongers 讨论组" <perlchina@googlegroups.com>
Sent: Thursday, November 12, 2009 12:10 AM
Subject: [PerlChina] Re: 请教:多进程中子进程的结果如何"回收"


> 我把程序改成多线程的了。能用倒是能用。不过很多东西是知其然不知其所以然的。好在比较简单就能实现。
> 目前还有一个问题是,我要给几个线程共享两个很大的数组,都有上亿个元素。那么我是用 :share 把这两个数组共享了好,还是把这两个数组按引用传
> 递给线程所要调用的子程序好呢?
>
> 好象自己的回贴要多刷两遍就出来了。呵呵。google的刷新好象要点时间。
>
> On 11月11日, 下午5时33分, 热雪 <laiwei...@gmail.com> wrote:
>> 用多线程也是可以的,其实perl里面的多线程跟多进程差不多.指定的变量才共享内存块.但是简单的控制还是比较简单的.复杂情况就不知道了,呵呵
>> 怎么我看不到自己的回帖呢?
>>
>> On 11月11日, 上午10时25分, "Haiyan Lin" <linhy0...@gmail.com> wrote:
>>
>> > 请问如何实现用管道在进程之间通信?能show一段简单的示例代码么(最好带点注释)?我也碰到过这个问题。最后用dbmopen将hash保存到*.dbm中,相当于还是写入了磁盘。谢谢。
>>
>> > ----- Original Message -----
>> > From: msmouse
>> > To: perlchina@googlegroups.com
>> > Sent: Wednesday, November 11, 2009 10:04 AM
>> > Subject: [PerlChina] Re: 请教:多进程中子进程的结果如何"回收"
>>
>> > 1。可否用多线程代替多进程? 那样就可以用共享内存了
>> > 2。可否用管道在进程之间通信? 最简单的就是获得子进程的标准输出句柄,子进程里面print到STDOUT上,父进程读那个句柄
>> > ----------------------------------
>> > msmo...@ir.hit.edu.cn
>> > msmo...@gmail.com
>>
>> > 2009/11/10 空格 <ribozyme2...@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 访问该论坛
-~----------~----~----~----~------~----~------~--~---

没有评论: