PERL实现多线程的一些demo程序

PERL实现多线程的一些demo程序,第1张

概述以前学perl时候的一些笔记。主要是perl来写多线程的程序,整理一下 1 #!/bin/perluse threads;use threads::shared; # 涉及到一些进程间变量的共享,用这个模块 my $process = 4;my $child_num = 0; print $threads::VERSION.chr(10); while (1)

以前学perl时候的一些笔记。主要是perl来写多线程的程序,整理一下

1


#!/bin/perluse threads;use threads::shared; # 涉及到一些进程间变量的共享,用这个模块  my $process = 4;my $child_num = 0; print $threads::VERSION.chr(10); while (1) {    if ($child_num < $process){        my $params = $child_num.':..........';        my $thr = threads->create(\&start_thread,$params);                $child_num ++;    }     #foreach my $t(threads->List()){     foreach my $t(threads->List(threads::joinable)){         $t->join();     }      # all tasks done and no running child,then exit    if ($child_num==4){        exit;    }} sub start_thread(){    # do actually task here     my $param = shift;    print $param.chr(10);}


2


my $maxchild=10;for($i=0;$i<=$maxchild-1;$i++){  my $child=fork();   if($child)  {   # child >; 0,so we're the parent        warn "launching child $child\n";   }else{        do_child($i);         # child handles      exit 0;             # child is done   } }exit;sub do_child{    my $child_number=shift(@_);   print("child,$child_number \n");}



use Thread;#use threads::shared; my @threads; open(MHO,$mhofile);my @mhoList=<MHO>; foreach my $mho (@mhoList) { next unless defined $mho;         print "start one thread";          $threads[$tempcount]=Thread->new(\&start_thread,$mho);           $tempcount++;                                            }foreach my $thread (@threads) { $thread->join();} sub start_thread{ my ($infomho)=@_; print "in thread $infomho"; sleep 20;}


4

#!/bin/perl use strict;use threads;use Cwd;use POSIX qw(strftime); ################################################################################# 函数名:  count# 函数描述:  数数# 输入:   name 随意输入一个名字# 输出:   无# 调用:  # 被调用: # 返回:################################################################################sub count{   my ($name) = @_;   my $current_time = strftime "%Y-%m-%d %H:%M:%s",localtime;   for ($i = 0; $i <= 10000; $i++)   {     print "$current_time  $name $i";   }} 创建第一批线程my $thread_1_01 = threads->create('count',Thread_1);my $thread_1_02 = threads->create('count',Thread_2);my $thread_1_03 = threads->create('count',Thread_3);my $thread_1_04 = threads->create('count',Thread_4); # 等待第一批线程结束完成$thread_1_01->join();$thread_1_02->join();$thread_1_03->join();$thread_1_04->join(); # 创建第二批线程my $thread_2_01 = threads->create('count',Thread_5);my $thread_2_02 = threads->create('count',Thread_6);my $thread_2_03 = threads->create('count',Thread_7); # 等待第二批线程结束完成$thread_2_01->join();$thread_2_02->join();$thread_2_03->join();


参考文档:

http://www.cnblogs.com/joechen/archive/2009/04/27/1444569.html

http://www.cnblogs.com/joechen/archive/2009/04/27/1444602.html

5 perl语言last和next命令



#last 退出循环陈述for($i=1;$i<=10;$i++){last if ($i==5); #如果$i等于5的话就退出for循环print"$i\n";}#会把1到4之间的数值显示出来.#next 到循环的下一个陈述for($i<=10;$i++){#如果是2的倍数的话,就到循环的下一个陈述next if($i%2)==0)print"$i是一个奇数!\n";}#会把1以10之间的奇数显示出来。

参考文档:http://hi.baidu.com/619195553dream/item/6ac361a8d4c137921510739f

总结一下,这个博客是以前做一个perl多线程时候积累的一些博客。收藏一下。^_^

总结

以上是内存溢出为你收集整理的PERL实现多线程的一些demo程序全部内容,希望文章能够帮你解决PERL实现多线程的一些demo程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1281070.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存