加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 00:41:37 所属栏目:大数据 来源:网络整理
导读:? #!/usr/bin/perl?-w ? ? #?装载perl线程模块 ? use ?threads; ? use ?POSIX?qw( strftime ); ? ? sub?produce?{ ? ????my? $thread_name ?=?shift; ? ???? while (1)?{ ? ????????my? $r ?=?int(rand(100)); ? ? ????????#?获得本线程内当前时间 ? ???????

?

 
 
  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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读