The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Perl Threads"
Отправлено pheonix, 17-Мрт-09 19:55 
Есть такой пример:

#!/usr/bin/perl

  use threads;
my @thread = ();
for (my $i = 0; $i <= 2; $i++) {
   $thread[$i] = threads->new(\&pearl_thread, $i);
   print "Создана $i-я нить. TID=", $thread[$i]->tid, "\n";
}
for (my $i = 2; $i >= 0; $i--) {
   print "$i-я нить вернула ", $thread[$i]->join, "\n";
}
sub pearl_thread ($) {        
   my $number = shift;        
   my $random = int(rand(7)) + 1;
   print "\t$number-я нить ждет $random сек.\n";
   sleep $random;                
   return $random;              
}  

он порождает 3 нити они выполняются параллельно, потом он чекает ответ и всё прекрасно, но как быть если нитей нужно отработать несколько десятков тысяч, если их все запустить сразу то скрипт вывалиться с сегментацией памяти оно и понятно, мало того так не нужно, как сделать так чтобы постоянно выполнялось одновременно по 100, и до тех пор пока не выполняться все 100 000???

то есть первый раз запущено 100 нитей, как только отработала 1 нить из 100, запускается 101 и так далее.

и ещё один момент, не очень удобно, если одна нить повисла, то программа будет ждать пока она не завершиться, как отлавливать что нить завершилась?

не могу сделать решение уже второй день, но очень нужно, помогите кто чем может :)

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру