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.