dankogai #4970(2007/12/25 18:57 GMT) [ Perl ] Rating0/0=0.00
Perlでthreadsを使うためには、-DusethreadsをつけてConfigureする必要がありますが、いちおうそうなっているという前提で。
-Dusethreads
Configure
本質的なのは、
1 while threads->list(threads::running);
だけです。threadsを再利用するか否かは関係なく使えます。
どちらかというと、threadsは使い捨てにした方がコードは書きやすいですね。
Dan the Threaded Perl Monger
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#!/usr/local/bin/perl use strict; use warnings; use threads; use Time::Hires qw/sleep/; my @thr; for my $i ( 1 .. shift || 10 ) { push @thr, threads->create( sub { my $n = shift; my $s = rand(10.0); sleep $s; warn "$n:slept $s sec."; }, $i ); } 1 while threads->list(threads::running); warn "All Threads Done"; $thr[0]->join(); # on purpose END { $_->is_joinable() and $_->join() for @thr; }
Rating0/0=0.00-0+
[ reply ]
dankogai
#4970()
[
Perl
]
Rating0/0=0.00
Perlでthreadsを使うためには、
-DusethreadsをつけてConfigureする必要がありますが、いちおうそうなっているという前提で。本質的なのは、
1 while threads->list(threads::running);
だけです。threadsを再利用するか否かは関係なく使えます。
どちらかというと、threadsは使い捨てにした方がコードは書きやすいですね。
Dan the Threaded Perl Monger
Rating0/0=0.00-0+
[ reply ]