Perl语言极简多线程的实现

Threads不用说肯定是最经典的多线程管理,但是如果你有以下需求:

我就想设置一个数,比如8,之后我大循环每次开始8个线程同时工作,哪个跑完了再补一个,保持有最大8个线程工作

这样的话,最简单的方法就是:Parallel::ForkManager包

cpan安装好或者直接拷贝到文件夹下,之后4行代码:

use Parallel::ForkManager;

my $maxThreads=8;
my $ps=Parallel::ForkManager->new($maxThreads);
for my $i(0..100){
  my $pid = $ps->start and next;
  #这里是你需要多线程运行的代码=-=;
  #比如:
  print "$i\n";
  sleep(rand(3));
  $ps->finish;
}
$ps->wait_all_children;

就是这么简单,其他细节可以看这个包的文档。

效率没测试过,但是感觉,和那些成熟的包应该还是没法比。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,135评论 1 32
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,801评论 0 10
  • 今天下午放学以后,因为上午考试,有十几份儿卷子没有改完,于是我打算改完后再走。女儿在写作业,儿子写完作业后在玩玩具...
    阳光_986c阅读 761评论 2 17
  • 今天阅读的是第六章,内容主题是管理人的职责,敢于问责,没监督谈什么管理。 前面我们讲了公司需要有相应的流程制度,并...
    甜香的麦子阅读 284评论 0 0
  • 18黄大仙 紫荆广场 太平山 浅水湾 晚餐 夜游香江 19购物 免税店 珠宝店 入住酒店 20开会 亚洲博览馆 行...
    此生为何而来阅读 112评论 0 0