<?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>中文 &#187; yeyuangen</title>
	<atom:link href="http://software.intel.com/zh-cn/blogs/author/yeyuangen/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/zh-cn/blogs</link>
	<description></description>
	<lastBuildDate>Mon, 28 May 2012 14:23:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>多线程编程（一）：线程创建和退出</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/10/28/400008915/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/10/28/400008915/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 05:29:08 +0000</pubDate>
		<dc:creator>yeyuangen</dc:creator>
				<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[并行计算]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/10/28/400008915/</guid>
		<description><![CDATA[一、引言 二、实例 以下实例中创建了2个线程，其中第一个线程是在程序运行到中途时调用pthread_exit函数退出，第二个正常退出。在主线程中，收集这两个线程的退出信息，并释放资源。从实例可以看出，这两个线程是并发运行的。 /*thread.c*/ #include #include void thread1(void) { int i=0; for(i=0;i&#60;6;i++) { printf("This is a pthread1.\n"); if(i==2) pthread_exit(0); //线程退出 sleep(3); //线程1睡眠，将CPU让给其它线程 } } void thread2(void) { int i; for(i=0;i&#60;3;i++) printf("This is a pthread2.\n"); pthread_exit(0); //打印完以上三条语句后，直接退出 } int main(void) { pthread_t id1,id2; int i,ret; ret=pthread_create(&#38;id1,NULL,(void *) thread1,NULL); //创建线程1，线程2 if(ret!=0) { printf ("Create pthread error!\n"); exit [...]]]></description>
			<content:encoded><![CDATA[<p>一、引言</p>
<p>二、实例<br />
以下实例中创建了2个线程，其中第一个线程是在程序运行到中途时调用pthread_exit函数退出，第二个正常退出。在主线程中，收集这两个线程的退出信息，并释放资源。从实例可以看出，这两个线程是并发运行的。</p>
<p>/*thread.c*/<br />
#include<br />
#include</p>
<p>void thread1(void)<br />
{<br />
int i=0;<br />
for(i=0;i&lt;6;i++)<br />
{<br />
printf("This is a pthread1.\n");<br />
if(i==2)<br />
pthread_exit(0); //线程退出<br />
sleep(3); //线程1睡眠，将CPU让给其它线程<br />
}<br />
}</p>
<p>void thread2(void)<br />
{<br />
int i;<br />
for(i=0;i&lt;3;i++)<br />
printf("This is a pthread2.\n");<br />
pthread_exit(0); //打印完以上三条语句后，直接退出<br />
}</p>
<p>int main(void)<br />
{<br />
pthread_t id1,id2;<br />
int i,ret;<br />
ret=pthread_create(&amp;id1,NULL,(void *) thread1,NULL); //创建线程1，线程2<br />
if(ret!=0)<br />
{<br />
printf ("Create pthread error!\n");<br />
exit (1);<br />
}<br />
ret=pthread_create(&amp;id2,NULL,(void *) thread2,NULL);<br />
if(ret!=0)<br />
{<br />
printf ("Create pthread error!\n");<br />
exit (1);<br />
}<br />
pthread_join(id1,NULL); //等待线程结束<br />
pthread_join(id2,NULL);<br />
exit (0);<br />
}</p>
<p>运行结果：<br />
[root@localhost net]# ./thread<br />
This is a pthread1.<br />
This is a pthread2.<br />
This is a pthread2.<br />
This is a pthread2.<br />
This is a pthread1.<br />
This is a pthread1.</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/10/28/400008915/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

