<?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 &#187; 默认分类</title>
	<atom:link href="http://icomes.net/category/%e9%bb%98%e8%ae%a4%e5%88%86%e7%b1%bb/feed/" rel="self" type="application/rss+xml" />
	<link>http://icomes.net</link>
	<description>做有趣的事，做有用的人</description>
	<lastBuildDate>Wed, 23 Jun 2010 16:04:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>诗一首</title>
		<link>http://icomes.net/2010/06/24/%e8%af%97%e4%b8%80%e9%a6%96/</link>
		<comments>http://icomes.net/2010/06/24/%e8%af%97%e4%b8%80%e9%a6%96/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 16:04:55 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[诗]]></category>

		<guid isPermaLink="false">http://icomes.net/2010/06/24/%e8%af%97%e4%b8%80%e9%a6%96/</guid>
		<description><![CDATA[铁甲将军夜渡关，
朝臣待漏五更寒。
山寺日高僧未起，
算来名利不如闲。
]]></description>
			<content:encoded><![CDATA[<p>铁甲将军夜渡关，<br />
朝臣待漏五更寒。<br />
山寺日高僧未起，<br />
算来名利不如闲。</p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2010/06/24/%e8%af%97%e4%b8%80%e9%a6%96/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ORM的一句话解释</title>
		<link>http://icomes.net/2010/06/01/orm%e7%9a%84%e4%b8%80%e5%8f%a5%e8%af%9d%e8%a7%a3%e9%87%8a/</link>
		<comments>http://icomes.net/2010/06/01/orm%e7%9a%84%e4%b8%80%e5%8f%a5%e8%af%9d%e8%a7%a3%e9%87%8a/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 06:40:24 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[Definition]]></category>

		<guid isPermaLink="false">http://icomes.net/2010/06/01/orm%e7%9a%84%e4%b8%80%e5%8f%a5%e8%af%9d%e8%a7%a3%e9%87%8a/</guid>
		<description><![CDATA[Tables map to classes, rows to objects, and columns to object attributes.
]]></description>
			<content:encoded><![CDATA[<p>Tables map to classes, rows to objects, and columns to object attributes.</p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2010/06/01/orm%e7%9a%84%e4%b8%80%e5%8f%a5%e8%af%9d%e8%a7%a3%e9%87%8a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新版阅读空间的UserScript</title>
		<link>http://icomes.net/2009/12/05/%e6%96%b0%e7%89%88%e9%98%85%e8%af%bb%e7%a9%ba%e9%97%b4%e7%9a%84userscript/</link>
		<comments>http://icomes.net/2009/12/05/%e6%96%b0%e7%89%88%e9%98%85%e8%af%bb%e7%a9%ba%e9%97%b4%e7%9a%84userscript/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 16:41:16 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[greasemonkey]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=472</guid>
		<description><![CDATA[用了JQuery，实在很方便。
但是很奇怪，评论小数字的click只有在展开了之后才会响应，路过的JS高手帮忙解释一下啊：）
已经上传到userscript.org，id63440，希望可以尽快修正上面提到的问题。

// ==UserScript==
// @name           QQMail Broadcast
// @namespace      QMBC
// @description    UI &#38; Functional Improvement for Broadcast
// @include        http://*.mail.qq.com/cgi-bin/reader_article_list*
// ==/UserScript==
&#160;
// Add jQuery
var GM_JQ = document.createElement&#40;'script'&#41;;
GM_JQ.src = 'http://jquery.com/src/jquery-latest.js';
GM_JQ.type = 'text/javascript';
document.getElementsByTagName&#40;'head'&#41;&#91;0&#93;.appendChild&#40;GM_JQ&#41;;
&#160;
// Check if jQuery's loaded
function [...]]]></description>
			<content:encoded><![CDATA[<p>用了JQuery，实在很方便。<br />
但是很奇怪，评论小数字的click只有在展开了之后才会响应，路过的JS高手帮忙解释一下啊：）<br />
已经上传到userscript.org，id<a target="_blank" href="http://userscripts.org/scripts/show/63440">63440</a>，希望可以尽快修正上面提到的问题。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// ==UserScript==</span>
<span style="color: #006600; font-style: italic;">// @name           QQMail Broadcast</span>
<span style="color: #006600; font-style: italic;">// @namespace      QMBC</span>
<span style="color: #006600; font-style: italic;">// @description    UI &amp; Functional Improvement for Broadcast</span>
<span style="color: #006600; font-style: italic;">// @include        http://*.mail.qq.com/cgi-bin/reader_article_list*</span>
<span style="color: #006600; font-style: italic;">// ==/UserScript==</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Add jQuery</span>
<span style="color: #003366; font-weight: bold;">var</span> GM_JQ <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'script'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
GM_JQ.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'http://jquery.com/src/jquery-latest.js'</span><span style="color: #339933;">;</span>
GM_JQ.<span style="color: #660066;">type</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'text/javascript'</span><span style="color: #339933;">;</span>
document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'head'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>GM_JQ<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Check if jQuery's loaded</span>
<span style="color: #003366; font-weight: bold;">function</span> GM_wait<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> unsafeWindow.<span style="color: #660066;">jQuery</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> window.<span style="color: #660066;">setTimeout</span><span style="color: #009900;">&#40;</span>GM_wait<span style="color: #339933;">,</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span> $ <span style="color: #339933;">=</span> unsafeWindow.<span style="color: #660066;">jQuery</span><span style="color: #339933;">;</span> letsJQuery<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
GM_wait<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> letsJQuery<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> _div <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;div style='float: right;'&gt;&lt;/div&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">var</span> _readMode <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;a&gt;Read Mode&lt;/a&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		_readMode.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</span><span style="color: #339933;">,</span> ReadMode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		_div.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>_readMode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;span&gt;|&lt;/span&gt;&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;margin&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;10px&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span>_div<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">var</span> _commentMode <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&lt;a&gt;Comment Mode&lt;/a&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		_commentMode.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</span><span style="color: #339933;">,</span> CommentMode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		_div.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>_commentMode<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#articlecontent&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">prepend</span><span style="color: #009900;">&#40;</span>_div<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> ReadMode<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div.update a[id^=artTitle_]&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> CommentMode<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> links <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div.postInfo a[id^=artCommentListLink]:visible&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	links.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/12/05/%e6%96%b0%e7%89%88%e9%98%85%e8%af%bb%e7%a9%ba%e9%97%b4%e7%9a%84userscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新主题iBlog2</title>
		<link>http://icomes.net/2009/09/15/%e6%96%b0%e4%b8%bb%e9%a2%98iblog2/</link>
		<comments>http://icomes.net/2009/09/15/%e6%96%b0%e4%b8%bb%e9%a2%98iblog2/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 12:52:24 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=438</guid>
		<description><![CDATA[偶尔发现了一个不错的Mac风格主题，可以把原来的Win7换掉了：）

]]></description>
			<content:encoded><![CDATA[<p>偶尔发现了一个不错的Mac风格主题，可以把原来的Win7换掉了：）</p>
<p><a href="http://icomes.net/wp-content/uploads/2009/09/icomes.net_mac.png"><img class="alignnone size-large wp-image-439" title="icomes.net_mac" src="http://icomes.net/wp-content/uploads/2009/09/icomes.net_mac-228x1024.png" alt="icomes.net_mac" width="228" height="1024" /></a><a href="http://icomes.net/wp-content/uploads/2009/09/icomes.net_win7.png"><img class="alignnone size-large wp-image-440" title="icomes.net_win7" src="http://icomes.net/wp-content/uploads/2009/09/icomes.net_win7-269x1024.png" alt="icomes.net_win7" width="269" height="1024" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/09/15/%e6%96%b0%e4%b8%bb%e9%a2%98iblog2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>提供daytime服务的server列表</title>
		<link>http://icomes.net/2009/07/24/%e6%8f%90%e4%be%9bdaytime%e6%9c%8d%e5%8a%a1%e7%9a%84server%e5%88%97%e8%a1%a8/</link>
		<comments>http://icomes.net/2009/07/24/%e6%8f%90%e4%be%9bdaytime%e6%9c%8d%e5%8a%a1%e7%9a%84server%e5%88%97%e8%a1%a8/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 15:38:18 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[默认分类]]></category>

		<guid isPermaLink="false">http://icomes.net/2009/07/24/%e6%8f%90%e4%be%9bdaytime%e6%9c%8d%e5%8a%a1%e7%9a%84server%e5%88%97%e8%a1%a8/</guid>
		<description><![CDATA[http://tf.nist.gov/tf-cgi/servers.cgi
]]></description>
			<content:encoded><![CDATA[<p><a href="http://tf.nist.gov/tf-cgi/servers.cgi" target="_blank">http://tf.nist.gov/tf-cgi/servers.cgi</a></p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/07/24/%e6%8f%90%e4%be%9bdaytime%e6%9c%8d%e5%8a%a1%e7%9a%84server%e5%88%97%e8%a1%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开始整理自己的类库</title>
		<link>http://icomes.net/2009/06/28/%e5%bc%80%e5%a7%8b%e6%95%b4%e7%90%86%e8%87%aa%e5%b7%b1%e7%9a%84%e7%b1%bb%e5%ba%93/</link>
		<comments>http://icomes.net/2009/06/28/%e5%bc%80%e5%a7%8b%e6%95%b4%e7%90%86%e8%87%aa%e5%b7%b1%e7%9a%84%e7%b1%bb%e5%ba%93/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 12:55:08 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[IronMan]]></category>

		<guid isPermaLink="false">http://icomes.net/2009/06/28/%e5%bc%80%e5%a7%8b%e6%95%b4%e7%90%86%e8%87%aa%e5%b7%b1%e7%9a%84%e7%b1%bb%e5%ba%93/</guid>
		<description><![CDATA[放到了Google Code上
完成了File操作部分
]]></description>
			<content:encoded><![CDATA[<p>放到了Google Code上<br />
完成了File操作部分</p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/06/28/%e5%bc%80%e5%a7%8b%e6%95%b4%e7%90%86%e8%87%aa%e5%b7%b1%e7%9a%84%e7%b1%bb%e5%ba%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>上上下下左左右右BA</title>
		<link>http://icomes.net/2009/05/31/%e4%b8%8a%e4%b8%8a%e4%b8%8b%e4%b8%8b%e5%b7%a6%e5%b7%a6%e5%8f%b3%e5%8f%b3ba/</link>
		<comments>http://icomes.net/2009/05/31/%e4%b8%8a%e4%b8%8a%e4%b8%8b%e4%b8%8b%e5%b7%a6%e5%b7%a6%e5%8f%b3%e5%8f%b3ba/#comments</comments>
		<pubDate>Sun, 31 May 2009 02:09:58 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=382</guid>
		<description><![CDATA[经典的代码：）

var k=&#91;&#93;;
addEventListener&#40;&#34;keyup&#34;,function&#40;e&#41;&#123; 
   k.push&#40;e.keyCode&#41;;
   if&#40;k.toString&#40;&#41;.indexOf&#40;&#34;38,38,40,40,37,39,37,39,66,65&#34;&#41;&#62;=0&#41;      
       cheat&#40;&#41;
&#125;,true&#41;;

]]></description>
			<content:encoded><![CDATA[<p>经典的代码：）</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> k<span style="color: #339933;">=</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
addEventListener<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;keyup&quot;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> 
   k.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>e.<span style="color: #660066;">keyCode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>k.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;38,38,40,40,37,39,37,39,66,65&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;=</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>      
       cheat<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/05/31/%e4%b8%8a%e4%b8%8a%e4%b8%8b%e4%b8%8b%e5%b7%a6%e5%b7%a6%e5%8f%b3%e5%8f%b3ba/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux下进程与线程的比较（1）</title>
		<link>http://icomes.net/2009/03/29/linux%e4%b8%8b%e8%bf%9b%e7%a8%8b%e4%b8%8e%e7%ba%bf%e7%a8%8b%e7%9a%84%e6%af%94%e8%be%83%ef%bc%881%ef%bc%89/</link>
		<comments>http://icomes.net/2009/03/29/linux%e4%b8%8b%e8%bf%9b%e7%a8%8b%e4%b8%8e%e7%ba%bf%e7%a8%8b%e7%9a%84%e6%af%94%e8%be%83%ef%bc%881%ef%bc%89/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 17:08:41 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[默认分类]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=331</guid>
		<description><![CDATA[线程有另外一个名字叫Light Weight Process，
但是到底有多Light，我是一直没有太多直观感觉的。
根据书上所说，线程和进程的主要区别有二：
1. 创建开销
2. IPC代价
首先，创建线程的开销比进程低得多，
“线程的创建可能比进程的创建快10～100倍”（UNP），
这篇日志就是我对Linux下进程与线程创建速度测试的一个记录。
环境：
2.6.27-14-generic #1 SMP i686 GNU/Linux
进程用fork创建，而线程使用pthread库。
fork.c

#include &#60;unistd.h&#62;
#include &#60;stdlib.h&#62;
#include &#60;stdio.h&#62;
&#160;
int Fork&#40;int i&#41;
&#123;
    if&#40; fork&#40;&#41; == 0 &#41;
    &#123;
        printf&#40;&#34;%d\n&#34;, i&#41;;
        exit&#40;0&#41;;
    &#125;
&#125;
&#160;
int main&#40;int c, char **v&#41;
&#123;
    if&#40;c [...]]]></description>
			<content:encoded><![CDATA[<p>线程有另外一个名字叫Light Weight Process，<br />
但是到底有多Light，我是一直没有太多直观感觉的。<br />
根据书上所说，线程和进程的主要区别有二：<br />
1. 创建开销<br />
2. IPC代价</p>
<p>首先，创建线程的开销比进程低得多，<br />
“线程的创建可能比进程的创建快10～100倍”（UNP），<br />
这篇日志就是我对Linux下进程与线程创建速度测试的一个记录。</p>
<p>环境：<br />
2.6.27-14-generic #1 SMP i686 GNU/Linux<br />
进程用fork创建，而线程使用pthread库。</p>
<p>fork.c</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;unistd.h&gt;</span>
<span style="color: #339933;">#include &lt;stdlib.h&gt;</span>
<span style="color: #339933;">#include &lt;stdio.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> Fork<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> fork<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000dd;">0</span> <span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        exit<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> c<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">**</span>v<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">!=</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        fprintf<span style="color: #009900;">&#40;</span>stderr<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Usage: %s count<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>v<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #993333;">int</span> iCount <span style="color: #339933;">=</span> atoi<span style="color: #009900;">&#40;</span>v<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #993333;">int</span> i <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span> i <span style="color: #339933;">&lt;</span> iCount <span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        Fork<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        i<span style="color: #339933;">++;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>pthread.c</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;pthread.h&gt;</span>
<span style="color: #339933;">#include &lt;stdio.h&gt;</span>
&nbsp;
<span style="color: #993333;">void</span> thread<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span> <span style="color: #339933;">*</span>p<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>p<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> c<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">**</span>v<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">!=</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        fprintf<span style="color: #009900;">&#40;</span>stderr<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Usage: %s count<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span>v<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #993333;">int</span> iCount <span style="color: #339933;">=</span> atoi<span style="color: #009900;">&#40;</span>v<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #993333;">int</span> i <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span> i <span style="color: #339933;">&lt;</span> iCount <span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        pthread_t pid<span style="color: #339933;">;</span>
        pthread_create<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>pid<span style="color: #339933;">,</span> NULL<span style="color: #339933;">,</span> thread<span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span> <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&amp;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        i<span style="color: #339933;">++;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>下面是测试结果：<br />
	   fork	pthread<br />
1	   0.003	0.011<br />
10       0.007	0.004<br />
100	   0.123	0.013<br />
1000	   0.277	0.152<br />
10000  1.423	0.467</p>
<p>的确快很多，但也没达到100倍。<br />
下次再比较一下调度的性能。</p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/03/29/linux%e4%b8%8b%e8%bf%9b%e7%a8%8b%e4%b8%8e%e7%ba%bf%e7%a8%8b%e7%9a%84%e6%af%94%e8%be%83%ef%bc%881%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox下span标签width属性失效的原因和解决方法</title>
		<link>http://icomes.net/2009/02/22/firefox%e4%b8%8bspan%e6%a0%87%e7%ad%bewidth%e5%b1%9e%e6%80%a7%e5%a4%b1%e6%95%88%e7%9a%84%e5%8e%9f%e5%9b%a0%e5%92%8c%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/</link>
		<comments>http://icomes.net/2009/02/22/firefox%e4%b8%8bspan%e6%a0%87%e7%ad%bewidth%e5%b1%9e%e6%80%a7%e5%a4%b1%e6%95%88%e7%9a%84%e5%8e%9f%e5%9b%a0%e5%92%8c%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 14:33:57 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[默认分类]]></category>
		<category><![CDATA[css firefox 浏览器兼容]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=323</guid>
		<description><![CDATA[原因：
    span标签的display属性默认是inline
解决方法：
span { display: inline-block;}
or
span { display: block;}
]]></description>
			<content:encoded><![CDATA[<p>原因：<br />
    span标签的display属性默认是inline<br />
解决方法：<br />
span { display: inline-block;}<br />
or<br />
span { display: block;}</p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/02/22/firefox%e4%b8%8bspan%e6%a0%87%e7%ad%bewidth%e5%b1%9e%e6%80%a7%e5%a4%b1%e6%95%88%e7%9a%84%e5%8e%9f%e5%9b%a0%e5%92%8c%e8%a7%a3%e5%86%b3%e6%96%b9%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>taotao</title>
		<link>http://icomes.net/2009/02/17/taotao/</link>
		<comments>http://icomes.net/2009/02/17/taotao/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 10:56:24 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[默认分类]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=321</guid>
		<description><![CDATA[http://taotao.qq.com/vc1/qz_first/firstjson?uin=953377400&#38;num=3http://taotao.qq.com/vc1/qz_first_utf8/def?uin=953377400&#38;num=3

]]></description>
			<content:encoded><![CDATA[<p>http://taotao.qq.com/vc1/qz_first/firstjson?uin=953377400&amp;num=3<br />http://taotao.qq.com/vc1/qz_first_utf8/def?uin=953377400&amp;num=3</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=ad6f444f-5e09-48cb-adac-430ff5fd79fa" /></div>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/02/17/taotao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
