<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Комментарии к записи: Многопоточность в PHP: HTTP-клиент</title>
	<atom:link href="http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/feed/" rel="self" type="application/rss+xml" />
	<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/</link>
	<description>о программировании, жизни и вообще</description>
	<lastBuildDate>Wed, 13 May 2009 04:06:02 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Автор:   - Evil Forest</title>
		<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-321</link>
		<dc:creator>  - Evil Forest</dc:creator>
		<pubDate>Mon, 22 Sep 2008 16:06:22 +0000</pubDate>
		<guid isPermaLink="false">http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-321</guid>
		<description>[...] http://php.webconsulting.by/2008/05/...funkciya-fork/ http://nopox.wordpress.com/2007/09/1...d-http-client/ http://dyuss.od.ua/2007/07/06/mnogopotochnost-v-php/ http://www.php.net/manual/en/ref.pcntl.php  [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://php.webconsulting.by/2008/05/...funkciya-fork/" rel="nofollow">http://php.webconsulting.by/2008/05/&#8230;funkciya-fork/</a> <a href="http://nopox.wordpress.com/2007/09/1...d-http-client/" rel="nofollow">http://nopox.wordpress.com/2007/09/1&#8230;d-http-client/</a> <a href="http://dyuss.od.ua/2007/07/06/mnogopotochnost-v-php/" rel="nofollow">http://dyuss.od.ua/2007/07/06/mnogopotochnost-v-php/</a> <a href="http://www.php.net/manual/en/ref.pcntl.php" rel="nofollow">http://www.php.net/manual/en/ref.pcntl.php</a>  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Kane</title>
		<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-133</link>
		<dc:creator>Kane</dc:creator>
		<pubDate>Thu, 13 Dec 2007 12:53:33 +0000</pubDate>
		<guid isPermaLink="false">http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-133</guid>
		<description>Ага, заметил :)</description>
		<content:encoded><![CDATA[<p>Ага, заметил <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: nopox</title>
		<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-132</link>
		<dc:creator>nopox</dc:creator>
		<pubDate>Thu, 13 Dec 2007 06:38:18 +0000</pubDate>
		<guid isPermaLink="false">http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-132</guid>
		<description>User-Agent можно дописать туда же, где расположены другие заголовки (&lt;code&gt;Host:&lt;/code&gt;,  к примеру): смотрите тело метода &lt;code&gt;_write()&lt;/code&gt;, на строки с &lt;code&gt;fputs()&lt;/code&gt; :) 

Кстати, Вордпресс изгадил код, бекслеши повырезал. Разумеется, там не &quot;rn&quot; должно быть, а &quot;\r\n&quot;...</description>
		<content:encoded><![CDATA[<p>User-Agent можно дописать туда же, где расположены другие заголовки (<code>Host:</code>,  к примеру): смотрите тело метода <code>_write()</code>, на строки с <code>fputs()</code> <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>Кстати, Вордпресс изгадил код, бекслеши повырезал. Разумеется, там не &laquo;rn&raquo; должно быть, а &laquo;\r\n&raquo;&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Kane</title>
		<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-126</link>
		<dc:creator>Kane</dc:creator>
		<pubDate>Wed, 12 Dec 2007 01:57:11 +0000</pubDate>
		<guid isPermaLink="false">http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-126</guid>
		<description>Не подскажите, куда можно дописать user-agent и header?</description>
		<content:encoded><![CDATA[<p>Не подскажите, куда можно дописать user-agent и header?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Опять многопоточность, но теперь в PERL (часть 1-я) &#171; Nopox&#8217;s Weblog</title>
		<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-27</link>
		<dc:creator>Опять многопоточность, но теперь в PERL (часть 1-я) &#171; Nopox&#8217;s Weblog</dc:creator>
		<pubDate>Sat, 06 Oct 2007 01:20:20 +0000</pubDate>
		<guid isPermaLink="false">http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-27</guid>
		<description>[...] About        Многопоточность в PHP:&#160;HTTP-клиент [...]</description>
		<content:encoded><![CDATA[<p>[...] About        Многопоточность в PHP:&nbsp;HTTP-клиент [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: nopox</title>
		<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-14</link>
		<dc:creator>nopox</dc:creator>
		<pubDate>Fri, 21 Sep 2007 09:31:10 +0000</pubDate>
		<guid isPermaLink="false">http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-14</guid>
		<description>Да, PHP не поддерживает работу в несколько потоков в &lt;em&gt;прямом&lt;/em&gt;смысле этого слова и вряд ли будет поддерживать. Но выполнять &lt;strong&gt;параллельно&lt;/strong&gt; сетевые операции с помощью неблокируемых сокетов может свободно. Больше ничего и не надо.

А fork всё ранво не многопоточность, а распараллеливание процессов.

Про стиль программирования: разумеется, писать класс для вывода &#039;Hello World&#039; не всегда нужно (Ваш класс, кстати, вообще непонятно что делает). Но это уже больше вопрос проектирования. Если вывод текста является бизнес-частью приложения, а не простым дизайном, то почему бы и нет...

Про теги: я буду писать про то, что мне интересно :). Про PHP интересно, про Web2.0 — не особо. Про Оперу, FF и многопоточность всё написали до меня, IE7 терпеть ненавижу, а о том, как заработать денех в сети, буду молчать как рыба об лёд: кому надо, тот в теме :)</description>
		<content:encoded><![CDATA[<p>Да, PHP не поддерживает работу в несколько потоков в <em>прямом</em>смысле этого слова и вряд ли будет поддерживать. Но выполнять <strong>параллельно</strong> сетевые операции с помощью неблокируемых сокетов может свободно. Больше ничего и не надо.</p>
<p>А fork всё ранво не многопоточность, а распараллеливание процессов.</p>
<p>Про стиль программирования: разумеется, писать класс для вывода &#8216;Hello World&#8217; не всегда нужно (Ваш класс, кстати, вообще непонятно что делает). Но это уже больше вопрос проектирования. Если вывод текста является бизнес-частью приложения, а не простым дизайном, то почему бы и нет&#8230;</p>
<p>Про теги: я буду писать про то, что мне интересно <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Про PHP интересно, про Web2.0 — не особо. Про Оперу, FF и многопоточность всё написали до меня, IE7 терпеть ненавижу, а о том, как заработать денех в сети, буду молчать как рыба об лёд: кому надо, тот в теме <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: i0nn</title>
		<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-13</link>
		<dc:creator>i0nn</dc:creator>
		<pubDate>Thu, 20 Sep 2007 20:51:27 +0000</pubDate>
		<guid isPermaLink="false">http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-13</guid>
		<description>К вопросу о объектно-ориентированности: как бы я реализовал. Максимум - функция. Мне, честно, не совсем интересен Java или, скажем, C#, ибо - классизированны и ОО до конца. Мне мало представляет интерес код:

&lt;code&gt;class Hello_world
{
  /**
  * Text variable for print
  *
  * @access private
  * @var string
  */
  private $text = &quot;Hello, world!&quot;;
  /**
  * Function for print text
  *
  * @access public
  * @param string $var
  * @return void
  */
  public function print_text($var)
  {
    print $var;
  }
}&lt;/code&gt;

А к классу ещё пара интерфейсов и абстрактный класс.
Для меня важна рациональность использования памяти. Класс заполняет несколько связок p-блоков в ОО движке php.

- чтобы собирать трафик по этому запросу

Чего там, не оправдывайся. Рано или поздно теги в блоге приобретут свою законченность:

php(2),
web2.0(238),
firefox(41),
opera(39),
ie7(12),
многопоточность(713),
как заработать денех в сети(1940)</description>
		<content:encoded><![CDATA[<p>К вопросу о объектно-ориентированности: как бы я реализовал. Максимум &#8211; функция. Мне, честно, не совсем интересен Java или, скажем, C#, ибо &#8211; классизированны и ОО до конца. Мне мало представляет интерес код:</p>
<p><code>class Hello_world<br />
{<br />
  /**<br />
  * Text variable for print<br />
  *<br />
  * @access private<br />
  * @var string<br />
  */<br />
  private $text = "Hello, world!";<br />
  /**<br />
  * Function for print text<br />
  *<br />
  * @access public<br />
  * @param string $var<br />
  * @return void<br />
  */<br />
  public function print_text($var)<br />
  {<br />
    print $var;<br />
  }<br />
}</code></p>
<p>А к классу ещё пара интерфейсов и абстрактный класс.<br />
Для меня важна рациональность использования памяти. Класс заполняет несколько связок p-блоков в ОО движке php.</p>
<p>- чтобы собирать трафик по этому запросу</p>
<p>Чего там, не оправдывайся. Рано или поздно теги в блоге приобретут свою законченность:</p>
<p>php(2),<br />
web2.0(238),<br />
firefox(41),<br />
opera(39),<br />
ie7(12),<br />
многопоточность(713),<br />
как заработать денех в сети(1940)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: i0nn</title>
		<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-12</link>
		<dc:creator>i0nn</dc:creator>
		<pubDate>Thu, 20 Sep 2007 20:34:48 +0000</pubDate>
		<guid isPermaLink="false">http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-12</guid>
		<description>fork - не многопоточность? оригинально. Наверное, я что-то забыл о кодинге под unix. =( Если говорить о fork&#039;е, то есть важная вещь - многопоточность непродуктивна при скажем переборе словаря, потоков эдак &gt;50M. Треды дохнут, а если нет, то виснут при моменте соединения. Тот же fork на микрозадачах - открыть файл#1, потом файл#2.. файл#т&lt;100. - слишком грузен и выигрыш от многопоточности стремится к нулю. Треды - это не совсем потоки смысла &quot;потоков&quot;. Это потоки, но сильно урезанные, они для микрозадач. А fork создаёт, конечно, полноправные процессы с дочерним PID и создан был для задач макроуровня.
Но многопоточности на php пока нет. Многие пытаются доказать и в других средствах СМИ, что вот мы можем отправить несколько запросов и получить ответы, ряд приложений построен на этом принципе, но многопоточность есть в php лишь для сети. Для локального воздействия с файлам/процессами/обработки текстовой информации - у него нет. Он может лишь послать несколько запросов и получить ответы без создания очереди.
А так многопоточности нет.</description>
		<content:encoded><![CDATA[<p>fork &#8211; не многопоточность? оригинально. Наверное, я что-то забыл о кодинге под unix. =( Если говорить о fork&#8217;е, то есть важная вещь &#8211; многопоточность непродуктивна при скажем переборе словаря, потоков эдак &gt;50M. Треды дохнут, а если нет, то виснут при моменте соединения. Тот же fork на микрозадачах &#8211; открыть файл#1, потом файл#2.. файл#т&lt;100. &#8211; слишком грузен и выигрыш от многопоточности стремится к нулю. Треды &#8211; это не совсем потоки смысла &laquo;потоков&raquo;. Это потоки, но сильно урезанные, они для микрозадач. А fork создаёт, конечно, полноправные процессы с дочерним PID и создан был для задач макроуровня.<br />
Но многопоточности на php пока нет. Многие пытаются доказать и в других средствах СМИ, что вот мы можем отправить несколько запросов и получить ответы, ряд приложений построен на этом принципе, но многопоточность есть в php лишь для сети. Для локального воздействия с файлам/процессами/обработки текстовой информации &#8211; у него нет. Он может лишь послать несколько запросов и получить ответы без создания очереди.<br />
А так многопоточности нет.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: nopox</title>
		<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-11</link>
		<dc:creator>nopox</dc:creator>
		<pubDate>Wed, 19 Sep 2007 22:32:53 +0000</pubDate>
		<guid isPermaLink="false">http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-11</guid>
		<description>Спасибо за комментарий прежде всего :). А теперь по пунктам:

&lt;blockquote&gt;Класс и объектно-ориентированность не одно и тоже и писать класс вряд ли надо было.&lt;/blockquote&gt;Насчет того, что класс и объектная ориентированность не одно и то же, согласен на сто процентов. А вот насчет &quot;вряд ли надо было&quot;... Разрешите узнать, а почему, собсна?.. :) И как бы Вы реализовали эту задачу? :)

&lt;blockquote&gt;Пулл неблокирующих сокетов и ряд других идей действительно описаны не раз, но это не МНОГОПОТОЧНОСТЬ, увы. В Perl она есть: threads&amp;fork - вставляй куда хочешь, за исключением работы с файлами, а это лишь сетевые запросы один за другим&lt;/blockquote&gt;
Тут дело вот в чем... Думаю, что не стоит погрязать в определениях; достаточно знать, что при  использовании этого класса запрос #2 начнет выполняться  &lt;em&gt;до&lt;/em&gt; того, как обработка запроса #1 полностью завершится. На мой взгляд, это многопоточность :). А вот fork, кстати, нет: это распараллеливание процессов, а не многопоточность. Не годится.

Между прочим, в теле статьи я ни разу не употребил слово «&lt;strong&gt;многопоточность&lt;/strong&gt;». Там написано примерно так:&lt;blockquote&gt;позволяет довольно просто выполнять несколько HTTP-запросов &lt;strong&gt;параллельно&lt;/strong&gt;&lt;/blockquote&gt;

Что касается заголовка... Каюсь, слово &lt;strong&gt;многопоточность&lt;/strong&gt; в заголовке поста я употребил специально, чтобы собирать трафик по этому запросу, который имеет некоторую популярность. Прошу меня простить за эту маленькую ложь :). Что ж поделать, законы рынка: не обманешь — не продашь :)</description>
		<content:encoded><![CDATA[<p>Спасибо за комментарий прежде всего <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . А теперь по пунктам:</p>
<blockquote><p>Класс и объектно-ориентированность не одно и тоже и писать класс вряд ли надо было.</p></blockquote>
<p>Насчет того, что класс и объектная ориентированность не одно и то же, согласен на сто процентов. А вот насчет &laquo;вряд ли надо было&raquo;&#8230; Разрешите узнать, а почему, собсна?.. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  И как бы Вы реализовали эту задачу? <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p>Пулл неблокирующих сокетов и ряд других идей действительно описаны не раз, но это не МНОГОПОТОЧНОСТЬ, увы. В Perl она есть: threads&amp;fork &#8211; вставляй куда хочешь, за исключением работы с файлами, а это лишь сетевые запросы один за другим</p></blockquote>
<p>Тут дело вот в чем&#8230; Думаю, что не стоит погрязать в определениях; достаточно знать, что при  использовании этого класса запрос #2 начнет выполняться  <em>до</em> того, как обработка запроса #1 полностью завершится. На мой взгляд, это многопоточность <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . А вот fork, кстати, нет: это распараллеливание процессов, а не многопоточность. Не годится.</p>
<p>Между прочим, в теле статьи я ни разу не употребил слово «<strong>многопоточность</strong>». Там написано примерно так:<br />
<blockquote>позволяет довольно просто выполнять несколько HTTP-запросов <strong>параллельно</strong></p></blockquote>
<p>Что касается заголовка&#8230; Каюсь, слово <strong>многопоточность</strong> в заголовке поста я употребил специально, чтобы собирать трафик по этому запросу, который имеет некоторую популярность. Прошу меня простить за эту маленькую ложь <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Что ж поделать, законы рынка: не обманешь — не продашь <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: i0nn</title>
		<link>http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-10</link>
		<dc:creator>i0nn</dc:creator>
		<pubDate>Wed, 19 Sep 2007 22:02:56 +0000</pubDate>
		<guid isPermaLink="false">http://nopox.wordpress.com/2007/09/19/php-multithread-http-client/#comment-10</guid>
		<description>1. Класс и объектно-ориентированность не одно и тоже и писать класс вряд ли надо было.
2. Пулл неблокирующих сокетов и ряд других идей действительно описаны не раз, но это не МНОГОПОТОЧНОСТЬ, увы. В Perl она есть: threads&amp;fork - вставляй куда хочешь, за исключением работы с файлами, а это лишь сетевые запросы один за другим.</description>
		<content:encoded><![CDATA[<p>1. Класс и объектно-ориентированность не одно и тоже и писать класс вряд ли надо было.<br />
2. Пулл неблокирующих сокетов и ряд других идей действительно описаны не раз, но это не МНОГОПОТОЧНОСТЬ, увы. В Perl она есть: threads&amp;fork &#8211; вставляй куда хочешь, за исключением работы с файлами, а это лишь сетевые запросы один за другим.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
