Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Pavel Zhuk                           2:5020/400     29 Dec 2003  20:57:50
 To : All
 Subject : расставить семафор? в многопоточном приложении
 -------------------------------------------------------------------------------- 
 
 Всем привет!
 
 Суть проблеммы:
 Есть прога которая таскает сбольшого количества URLов по маленькому кусочку.
 Hе спрашивайте зачем :)
 Юзаю её из под Windows 2000, но начал вылетать с сообщением
 memeory can not be read. тестил на разных машинах - всё одно и тоже, так что
 с памятью глюков быть не может...подозреваю, что где-то надо правильно
 расставить семафоры для потоков.
 помогите плиз.
 
  use HTTP::Request; use LWP::UserAgent;
  use IO::File;  use threads qw(yield);
  use Thread; use Thread::Semaphore;
 
  my $output=IO::File->new("out.txt","w") or die "Cannot open output file";
  $output->autoflush;
  my $threadnum=shift || 10;
  my $semaphore = new Thread::Semaphore;
  $flag=1;
  my $i : shared=0;
  my $prf=0;
  for ($j=132879;$j<200000;$j++)
  {
   if ($i<$threadnum)
         {
         $i++;
   (Thread->new(\&brut,$j))->detach();
   }
 
   while ($i==$threadnum)
   {
   sleep(2);
   }
 
  }
  close($output);
 
 sub brut
 {
  my $num=shift;
  print "Entering $num\n";
  my $url="http://name.domain.net/index.phtml?param=".$num;
  $request=HTTP::Request->new(GET,$url);
  my $agent=LWP::UserAgent->new;
  $bytes=$agent->max_size(1);
  my $response=$agent->request($request);
  my $out=$response->content;
  $semaphore->down;
  yield;
  $i--;
  print $output "$url\n $out \n";
  print "Exiting $num\n";
  $semaphore->up;
 }
 ЗЫ: Юзаю Perl только месяц, так что сильно ногами чур не пинать!
         Лучше расскажите что к чему :)
 Заранее спасибо.
 --- ifmail v.2.15dev5.1
  * Origin: Unknown (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 расставить семафор? в многопоточном приложении   Pavel Zhuk   29 Dec 2003 20:57:50 
 Re: расставить семафор? в многопоточном приложении   Yury Kopyl   30 Dec 2003 10:05:40 
Архивное /ru.perl/91384055c780.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional