
多进程:
#!/usr/bin/perluse strict;use warnings;print "Starting main program\n";my @childs;for ( my $count = 1; $count <= 10; $count++) { my $pID = fork(); if ($pID) { # parent #print "pID is $pID,parent $$\n"; push(@childs,$pID); } elsif ($pID == 0) { # child sub1($count); exit 0; } else{ dIE "Couldnt fork: $!\n"; }}foreach (@childs) { my $tmp = waitpID($_,0); print "done with pID $tmp\n";} print "End of main program\n";sub sub1 { my $num = shift; print "started child process for $num\n"; sleep $num; print "done with child process for $num\n"; return $num;} 多线程:
#!/usr/bin/perluse strict;use warnings;use threads;use threads::shared;print "Starting main program\n";my @threads;for ( my $count = 1; $count <= 10; $count++) { my $t = threads->new(\&sub1,$count,"hello,word"); push(@threads,$t);}foreach (@threads) { my $num = $_->join; print "done with $num\n";}print "End of main program\n";sub sub1 { my ($num,$str) = @_; print "started thread $num,$str\n"; sleep $num; print "done with thread $num\n"; return $num . " haha...";} 总结 以上是内存溢出为你收集整理的Perl多进程与多线程简单示例全部内容,希望文章能够帮你解决Perl多进程与多线程简单示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)