То, что &quot;найдутся&quot;, я не спорю, но интерпретатор не сможет угадать, что за чем надо выполнять, программист должен рассказать.<br><br>Твои примеры не отражают сути асинхронности,<br><br>Вот пример:<br><br>1,2 -&gt; 3<br>
4,5 -&gt; 6<br>3,6 -&gt; 7<br><br>на BASH: ( 1 &amp;; 2 &amp;; wait; 3 ) &amp; ; ( 4 &amp;; 5 &amp;; wait; 6 ) &amp; ;&nbsp; wait; 7<br>на Perl:<br><br>Wait { 7 } [<br>&nbsp;sub {<br>&nbsp; Wait { 3 } [<br>&nbsp;&nbsp; sub { 1 },<br>&nbsp;&nbsp; sub { 2 },<br>
&nbsp; ]<br>&nbsp;},<br>&nbsp;sub {<br>&nbsp; Wait { 6 } [<br>&nbsp;&nbsp; sub { 4 }<br>&nbsp;&nbsp; sub { 5 }<br>&nbsp; ]<br>&nbsp;}<br>];<br><br>На сколько мне известно, на POE, IO::Lambda такое сделать можно, на AnyEvent без Coro нет.<br><br>Так вот, при линейном это записывается так: 1,2,3,4,5,6,7<br>
<br>Как интерпретатор должен понять, что этот код нужно выполнить максимально эффективно и асинхронно?<br><br><div class="gmail_quote">11 декабря 2008 г. 18:57 пользователь Монашёв Михаил <span dir="ltr">&lt;<a href="mailto:postmaster@softsearch.ru">postmaster@softsearch.ru</a>&gt;</span> написал:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Здравствуйте, Анатолий.<br>
<div class="Ih2E3d"><br>
&gt; Вообще, ═в ═теории, наверное можно написать такой перл (седьмой? :-)),<br>
&gt; который ═сам ═бы ═внутри ═себя ═мультиплексировал запущенные процесс и<br>
&gt; переписывать ═под ═мультиплексирование ═приложения не нужно было бы. А<br>
&gt; сейчас ═конечно ═под Каталист HTTP-движок с мультиплексированием никак<br>
&gt; не сделать.<br>
<br>
&gt; Вот это вы сильно сказали, &quot;переписывать не нужно было бы&quot; :)<br>
<br>
</div>Даже &nbsp;простейший &nbsp;линейный &nbsp;скрипт &nbsp;параллелится &nbsp;на &nbsp;несколько корок.<br>
Всегда найдутся небольшие операции, которые можно выполнять независимо<br>
от других.<br>
Пример 1:<br>
$y = ($a+$b)*($c+$d);<br>
то, &nbsp;что &nbsp;в &nbsp;скобках &nbsp;не зависит никак от того, что в других скобках и<br>
может выполняться параллельно.<br>
<br>
Пример 2:<br>
for ($i=1;$i&lt;100;$i++){<br>
 &nbsp; &nbsp;$x +=$i<br>
}<br>
for ($j=1;$j&lt;200;$j++){<br>
 &nbsp; &nbsp;$y++;<br>
}<br>
куски &nbsp;кода &nbsp;друг &nbsp;от &nbsp;друга &nbsp;совсем &nbsp;не &nbsp;зависят &nbsp;и могут выполняться<br>
параллельно.<br>
<br>
Пример 3:<br>
набираем на одной консоли<br>
perl 1.pl<br>
<br>
набираем на другой консоли<br>
perl 2.pl<br>
<br>
у нас запускаются 2 процесса. А мог бы запуститься 1. Проблема лишь в<br>
том, что перл пока не умеет при ожидании получения данных из сокета<br>
или с диска делать что-то ещё. Он тупо ждёт, занимая оперативку и<br>
приходится использовать либы для асинхроннхронной работы, чтобы<br>
написать плохо читабельную и трудно отлаживаемую программу. Также перл<br>
пока не умеет находит независимые друг от друга куски кода и выполнять<br>
их параллельно на нескольких корах. Так что можно сильно ускорится не<br>
переписывая перловые скрипты. Нужно лишь &quot;немного :-)&quot; допилить перл.<br>
<div class="Ih2E3d"><br>
&gt; Линейное программирование не может выполняться асинхронно, поэтому оно линейное.<br>
&gt; Поэтому в Perl 6 есть: sync { } и async { }<br>
<br>
</div>Есть &nbsp;подозрение, &nbsp;что &nbsp;интерпретатор сам может определить какой код в<br>
каком режиме можно исполнять. Только он пока этому не научился.<br>
<div class="Ih2E3d"><br>
&gt; Есть реализация для mysql асинхронного клиента, но чтобы ее<br>
&gt; прикрутить к каталисту можно офигеть :)<br>
<br>
</div>Дай ссылочку плз.<br>
<div><div></div><div class="Wj3C7c"><br>
<br>
--<br>
С уважением,<br>
Монашёв Михаил, SoftSearch.ru<br>
mailto:<a href="mailto:postmaster@softsearch.ru">postmaster@softsearch.ru</a><br>
ICQ# 166233339<br>
<a href="http://michael.mindmix.ru/" target="_blank">http://michael.mindmix.ru/</a><br>
Без бэкапа по жизни.<br>
<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>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>С уважением,<br> Анатолий Шарифулин.<br>