一個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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章