微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一个perl线程使用方法的简单演示

 

 
 
  1. #!/usr/bin/perl -w  
  2.  
  3. # 装载perl线程模块  
  4. use threads;  
  5. use POSIX qw(strftime);  
  6.  
  7. sub produce {  
  8.     my $thread_name = shift;  
  9.     while(1) {  
  10.         my $r = int(rand(100));  
  11.  
  12.         # 获得本线程内当前时间  
  13.         my $Now_time = strftime "%Y-%m-%d %H:%M:%s", localtime;  
  14.  
  15.         # 获得本线程的ID  
  16.         $n = threads->tid();  
  17.         my $r2 = int(rand(3));  
  18.         printf("$thread_name \$random: %-2s | \$random2: $r2 | thread_id: $n | $Now_time |\n",$r);  
  19.         sleep($r2);  
  20.     }  
  21. }  
  22.  
  23. # 创建N个线程,每个线程调用 &produce 子例程,并传送一个参数.  
  24. my $jason1 = threads->create(\&produce, "jason1");  
  25. my $jason2 = threads->create(\&produce, "jason2");  
  26. my $jason3 = threads->create(\&produce, "jason3");  
  27. my $jason4 = threads->create(\&produce, "jason4");  
  28. my $jason5 = threads->create(\&produce, "jason5");  
  29.  
  30. # 线程结束,收割.  
  31. $jason1->join();  
  32. $jason2->join();  
  33. $jason3->join();  
  34. $jason4->join();  
  35. $jason5->join(); 

 use threads;模块的详细使用方法还要好好研究.

http://search.cpan.org/~jdhedden/threads-1.82/lib/threads.pm

注:

之前看了段时间的Thread模块.后来才发现.这个模块已经被放弃了.因为有很多问题.

打算用perl写多线程,还是好好研究threads.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐