У меня есть следующий скрипт Perl, который создает 10 потоков и вызывает функцию 1000 раз. В этой функции есть только печать (для отладки) и sleep(5)
Perl Темы: Как работает Sleep() behash
Вот Perl Сценарий:
use threads;
use threads::shared;
use Thread::Queue;
my $fetch_q = Thread::Queue->new();
sub fetch {
while (my $num = $fetch_q->dequeue()) {
print "$num\n";
sleep(5);
}
}
my @workers = map { threads->create(\&fetch) } 1 .. 10;
$fetch_q->enqueue(1 .. 1000);
$fetch_q->end();
foreach my $thr (@workers) {$thr->join();}
Когда я называю sleep(5)
кажется, что вся программа останавливается (это правильно?). Также как я могу сделать отдельный поток сна?
Я имел в виду последнего. Из моего тестирования это выглядит так, как вся программа останавливается в течение 5 секунд, поэтому я хочу узнать, как сделать отдельный поток сна/остановку в течение 5 секунд. – Bijan
Поскольку все ваши темы называются 'sleep', как вы могли бы отличить этот код? –