perl 信号 线程数
? 试了一下通过信号来控制并发线程数,测试发现还是不太稳定啊。。各种segment error。。。 ? ? ? #!/usr/bin/perl -w use threads; use Thread::Semaphore; use Net::Ping; my $semaphore = Thread::Semaphore->new(10); ? my $i=1; ? for($i=1;$i<50;$i++) ?{ ???? $semaphore->down(); ???? my $thread=threads->create(&;check,$i); ???? $thread->detach(); ?} ? &waitthread(); ? sub check() ?{ ??? my $num=shift; ??? my $host="10.14.12.".$num; ??? my $p=Net::Ping->new(); ??? if($p->ping($host,2)) ???? { ??????????? print "$host is okn"; ???? } ??? else{ ?????????? print "$host is not okn"; ??? } ?? $p->close(); ??? $semaphore->up(); ? } ? sub waitthread() ?{ ??? my $tmp=0; ??? while($tmp < 10) ???? { ??????? $semaphore->down(); ??????? $tmp++; ???? } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |