İşte / benim kütüphanede var Perl şey (ve hey, ben sadece o dilde bu anı çalışan bir şey vermek için PHP teçhizat bu kadar gitmiyorum, dürüst olalım. Sadece ben kopyalayabilirsiniz ne kullanıyorum ) yapıştırın.
#!/usr/bin/perl
use threads;
use Thread::Queue;
my @workers;
my $num_threads = shift;
my $dbname = shift;
my $queue = new Thread::Queue;
for (0..$num_threads-1) {
$workers[$_] = new threads(\&worker);
print "TEST!\n";
}
while ($_ = shift @ARGV) {
$queue->enqueue($_);
}
sub worker() {
while ($file = $queue->dequeue) {
system ('./4parser.pl', $dbname, $file);
}
}
for (0..$num_threads-1) { $queue->enqueue(undef); }
for (0..$num_threads-1) { $workers[$_]->join; }
Bu sistemler aramalardan biri bitirir zaman, o dequeing geçer. Ben hwy biliyorum Oh, ve lanet yaptım 0..$numthreads
yerine, normal my $i = 0; $i < ...
deyim, ama ben bu şekilde o zaman yaptım.