Я же говорил, изучайте Erlang/OTP. Там всё это есть из коробки. И слава богу, а не подписан на их списки рассылки.<br><br><div class="gmail_quote">16 октября 2012 г., 13:31 пользователь ksvs <span dir="ltr"><<a href="mailto:ksvs1996@ymail.com" target="_blank">ksvs1996@ymail.com</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:12pt;font-family:times new roman,new york,times,serif"><div><span>Привет, это опять я. Все, решил.<br>
Буду учить Perl как супер-пупер динамический и Haskell как супер-пупер статический.<br><br>Уже прочитал всего Ларри и начал читать Линкольна про сетевое программирование.<br><br>Вот уже написал программу на Perl, которая показывает кто больше пишет в moscow-pm (программа в конце письма):<br>
196   Alexandr Alexeev<br>174   Ivan Petrov<br>164   Alexandr Gomoliako<br>124   Михаил Монашёв<br>110   Akzhan Abdulin<br><br>Теперь буду, думать как сделать, чтобы
 страницы запрашивались и обрабатывались одновременно.<br>Линкольн говорит, что thread использовать не стоит.<br>Наверно, ситуация с тех пор не изменилось, так как у меня perl ругается: "This Perl not built to support threads".<br>
Можно попробовать, как кто-то мне говорил, асинхронные библиотеки. А какие? Их так много на CPAN.<br><br>Но, ведь кроме получения данных надо их обрабатывать.<br>Хочется, чтобы все ядра процессора работали, а не одно.<br>
Поэтому надо использовать fork.<br><br>Как-то не понятно, а когда нужны асинхронные библиотеки? Если интернет
 быстрый.</span></div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:times new roman,new york,times,serif"><span>Читал, что fork не занимает много памяти из-за COW (или как оно там).<br>
Но какая разница 10 процессов по 1 HTML странички в каждом или в одном 10 HTML страничек?<br>А так при анализе страничек все ядра процессора будут использоваться!<br>Да и базы данных все синхронные, кажется.<br><br>Или асинхронные библиотеки были нужны в прошлом, когда интернет был медленный и процессоры с одним ядром?<br>
<br>А сейчас изучение затормозилось. Не могу найти
 хороший модуль, для общения с дочерними процессами.<br>Есть модуля для распараллеливания задач по fork, но они все примитивные.<br>Хочется, чтобы дочерний процесс мог у родителя запросить дополнительные данные, если в этом возникнет необходимость,<br>
вернуть промежуточные результаты и прочие.<br>В каком модуле на СПАНЕ это есть? А есть, чтобы можно было не только задействовать все ядра CPU, а и несколько компьютеров?<br><br>Решил это глянуть на haskell. Там все это вроде есть.<br>
Но в нем я запутался в другом. Говорят, что ленивый ввод вывод -
 это круто.<br>А потом говорят, что в нем много проблем и надо использовать не его, а какие-то трубы (conduit) или энумераторы.<br><br>Что-то совсем нет настроения...<br><br>__END__<br><br>use LWP;<br><br>my $ua = LWP::UserAgent->new();<br>
<br>my $base_url = "<a href="http://mail.pm.org/pipermail/moscow-pm/" target="_blank">http://mail.pm.org/pipermail/moscow-pm/</a>";<br><br>my %a = ();<br><br>my $r = $ua->get($base_url);<br>my $c = $r->content();<br>
my @m = $c =~ m/"2012-\w+\/author\.html"/g;<br>foreach my $m (@m) {<br>    $m =~ s/"//g;<br><br>    my $new_url = $base_url . $m;<br>    my $r = $ua->get($new_url);<br>    my $c = $r->content;<br>    my @a = $c =~ m/<I>.+?<\/I>/g;<br>
<br>    foreach my $a (@a) {<br>        $a =~
 s/<I>//g;<br>        $a =~ s/<\/I>//g;<br>        $a{$a} = $a{$a} + 1;<br>    }<br>}<br><br>my @a = keys(%a);<br>my @as = sort(@a);<br>foreach my $as (@as) {<br>    my $n = $a{$as};<br>    print $n . "   " . $as . "\n";<br>
}<br></span></div></div></div><br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br>