这是搜到的一段程序, 用3个进程完成6项任务。源码和输出结果如下,每次都同时调用3进程来执行,这样没有达到并行执行,分解任务的目的啊。请大家指教 源代码: use strict; use English '-no_match_vars'; use Errno qw(EAGAIN); use threads; use threads::shared; my $items = 6; #需要处理的任务数 my $maxchild = 3; #最多线程数(1-65),perl最多允许64个子线程,加上主线程因此最多65个线程 my $pid; my $forks: shared ...
我想用多进程提取网页数据,看了仙子写的多进程,自己改了一下,感觉不行,改成了一个循环,哎! 请高手指教!谢谢 网页内容只与http://www.ncbi.nlm.nih.gov/projects/SNP/snp_gene.cgi?rs=$snp中的$snp有关,所以我把它们放在一个单独的文件<>中 #!/usr/bin/perl use strict; use warnings; use LWP::Simple; print "Starting main program\n"; my @childs; while(<>){ chomp; for ( my $count = 1; $count <= 10; $count...
下面是我的代码,对domain数组的四个元素开了四个进程,运行起来还没有一个一个快。而如果我把10000000改成10000,结果就是多进程快了。这是怎么搞的啊?是不是代码写的不对啊?谢谢大家! #! /usr/bin/perl use threads; @domain = ("tom.com", "chinadns.com", "163.com", "aol.com"); for ($i=0;$i<4;$i++) { print $i.'.'.$domain[$i].' '; } my $thr0 = threads->new(\&checkwhois, '0', ...
本帖最后由 kingwmj 于 2012-08-08 16:02 编辑 写了一个程序,因为太慢,所以改用多进程,但是与我的原来的不分进程的程序结果不一致,最大的可能是多个进程互相修改某个变量.但我没有找到,求高手给看一下.[code] sub step_3_jaccard_distance_cal(){ #格式:+1 P08758 Human 0 0 0 0 0 0 0 0 0 0 0 0 0 1 my $in_file=shift; my $in= new IO::File($in_file) or die $!; my $out_file=shift; my $out = new IO::File(">$...
本帖最后由 qiuzhimajia 于 2010-07-29 11:52 编辑 我写了一个多进程的程序,但是每个进程都会往终端输出,运行时输出杂乱无章,敢问各位如何控制输出,谢谢 如下代码:[code]my @rno1 = (100..109); my @rno2 = (110..119); my @rno3 = (120..129); my @rno4 = (130..139); my @rno5 = (140..149); my @rno6 = (150..159); my @rno7 = (160..169); my @rno8 = (170..179); my %rno = ( no1 => "@rno1", no2 =...
经常遇到这样的需求, 一个父进程开启多个子进程, 每个子进程都需要做一个长时间的处理, 所以希望显示这些子进程的进度. 在网上可以找到单进程的进度显示, 但多进程的进度显示没找着. 所以就自己想着做一个, 希望大家给点意见,要是有更好的方法的话请分享一下.:PP[code] #!/usr/local/bin/perl5 use warnings; use strict; use Fcntl; use Term::Cap; use Parallel::ForkManager; #============================== # for termi...
perl多进程实战之四-BerkeleyDB 上次的文档讨论的文件存储方式是DB_File,结论是它的并发性太差,tie的过程太慢,所以,在并发量高的情况下,必须采用另外的方案,其中的一种办法就是用BerkeleyDB。 BDB也算是相当有名的数据库了,但是perl对它的封装感觉并不是很好,废话少说了,举例子: #!/usr/bin/perl # test_bdb_1.pl # create by lianming: 2009-08-17 # last modify by lianming: 2009-08-17 use BerkeleyD...