#!/usr/bin/perl -w
$| = 1;
use LWP::UserAgent;
use LWP::ConnCache;
use threads ('yield',
'stack_size' => 8*4096,
'exit' => 'threads_only',
'stringify');
my $url = 'http://somesite.ru/';
my $threads = 5;
threads->new(\&main) for 1 .. $threads;
$_->join for threads->list;
sub main
{
$i = 1;
while ($i<3) {
my $ua = LWP::UserAgent->new;
$ua->conn_cache(LWP::ConnCache->new());
$ua->agent('Mozillo 9.0 Presto);
$ua->default_headers->push_header('Accept' => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
$ua->default_headers->push_header('Accept-Language' => "ru,en-us;q=0.7,en;q=0.3");
$ua->default_headers->push_header('Accept-Charset' => "windows-1251,utf-8;q=0.7,*;q=0.7");
$ua->default_headers->push_header('Referer' =>"http://google.ru/search/");
$response = $ua->get($url);
print $response;
sleep (15);
redo;
++$i;
}
}
Привествую всех. В коде, приведенном выше, 5 потоков запрашивают страничку одновременно, потом обрабатывают ее содержимое... Можно ли как-то настроить их, чтобы, к примеру 3 из них запрашивали страницу, а другие в это время обрабатывали результат... Слышал, что для многопоточности больше всего подходит событийная машина POE, в ней можно настроить интервал между потоками, чтобы парсинг был более безопасен с точки зрения палевности. Правда ли это?
Спасибо за любую помощь заранее...