<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog. mult edition &#187; Programming</title>
	<atom:link href="http://multed.net/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://multed.net</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jan 2012 08:59:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Perl и многопоточность. Возвращение к програмированию</title>
		<link>http://multed.net/2008/09/perl_multithreading_programming/</link>
		<comments>http://multed.net/2008/09/perl_multithreading_programming/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 14:36:26 +0000</pubDate>
		<dc:creator>Евгений Лисовский</dc:creator>
				<category><![CDATA[Daily]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[multitreads]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://multed.net/?p=95</guid>
		<description><![CDATA[Да-да. Я снова начал програмировать на Perl. Хочу написать небольшой поисковичек по локальным ftp-ресурсам моей домашней сети. А прежде всего столкнулся с проблемой сканирования сети на предмет доступных ftp-серверов с разрешеным доступом для анонимуса. Набросав небольшой скриптец, запустив его &#8212; понял, что для сканирования сети 10/10 потребуется 5*255*255*63 = 20482875 секунд или больше 250 дней [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmulted.net%2F2008%2F09%2Fperl_multithreading_programming%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmulted.net%2F2008%2F09%2Fperl_multithreading_programming%2F&amp;source=multed_net&amp;style=normal&amp;service=retwt.me&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Да-да. Я снова начал програмировать на Perl. Хочу написать небольшой поисковичек по локальным ftp-ресурсам моей домашней сети. А прежде всего столкнулся с проблемой сканирования сети на предмет доступных ftp-серверов с разрешеным доступом для анонимуса. Набросав небольшой скриптец, запустив его &#8212; понял, что для сканирования сети 10/10 потребуется 5*255*255*63 = 20482875 секунд или больше 250 дней (-; и тогда я подумал: &#171;к черту! а зачем придумали многопоточность?&#187; к тому же моя домашняя FreeBSD 7.0 с двуядерным Xeon E3110 достаточно хорошо должна стправиться с такими приложениями. И я начал копать в эту сторону.</p>
<p>Для начала надо было пересобрать Perl с поддержкой многопоточности. Сделано.</p>
<p>Можно создавать потоки как с контролем за жизнью, так и без контроля (типа запустил и забыл).</p>
<p>В первом случае используем:</p>
<blockquote><p>threads-&gt;create(\&amp;mySub,$param)-&gt;join;</p></blockquote>
<p>А во втором:</p>
<blockquote><p>threads-&gt;create(\&amp;mySub,$param)-&gt;detach;</p></blockquote>
<p>Ежели нам надо запустить кучу тредов и не дать основному скрипту закончить работу до окончания работы потоков, можно использовать такую конструкцию:</p>
<blockquote><p>foreach (1..$numThreads) {<br />
threads-&gt;create(\&amp;mySub,$param);<br />
};</p>
<p>foreach (threads-&gt;list) { $_-&gt;join; };</p></blockquote>
<p><strong>list</strong> &#8212; возвращает список потоков, для которых еще не применили join или detach.</p>
<p>Ну вот и основное, что я пользую нынче в многопоточных приложениях на Perl. Надеюсь, не последний пост на эту тему (-;</p>
<p>____</p>
<p>И еще:</p>
<p>Интересный <a href="http://www.ravadir.ru" target="_self">SEO-блог</a> Дмитриева Романа.</p>
<p>Дракасмит <a href="http://drakasmit.ru/re-dizajn-bloga/" target="_blank">сделал RE: дизайн</a>, а у <a href="http://blog.mons.ws/?p=252" target="_blank">Креативного кота глючит CuteFTP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://multed.net/2008/09/perl_multithreading_programming/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

