linux下C語言多線程編程實例.doc

linux下C語言多線程編程實例.doc

ID:62033758

大?。?8.50 KB

頁數(shù):5頁

時間:2021-04-15

linux下C語言多線程編程實例.doc_第1頁
linux下C語言多線程編程實例.doc_第2頁
linux下C語言多線程編程實例.doc_第3頁
linux下C語言多線程編程實例.doc_第4頁
linux下C語言多線程編程實例.doc_第5頁
資源描述:

《linux下C語言多線程編程實例.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、linux下C語言多線程編程實例2007年11月29日 星期四10:39學(xué)東西,往往實例才是最讓人感興趣的,老是學(xué)基礎(chǔ)理論,不動手,感覺沒有成就感,呵呵.?下面先來一個實例。我們通過創(chuàng)建兩個線程來實現(xiàn)對一個數(shù)的遞加。或許這個實例沒有實際運(yùn)用的價值,但是稍微改動一下,我們就可以用到其他地方去拉。??下面是我們的代碼:/*thread_example。c:?。恪ultiplethreadprogramming inlinux *author:falcon*E—mail?。簍unzhj03@st.lzu.edu.cn?。?#include<pthread。h>#include 〈

2、stdio.h〉#include<sys/time。h〉#include〈string.h〉#defineMAX10pthread_t thread[2];pthread_mutex_tmut;int number=0, i;void*thread1(){?。餽intf ("thread1: I'mthread1\n"); for(i=?。?i <MAX;i++) {     printf(”thread1:number=%d",number);     ?。餿hread_mutex_lock(&mut);    number++; ?。穑簦鑢ead_mutex_unlo

3、ck(&mut);  sleep(2);?。 rintf("thread1:主函數(shù)在等我完成任務(wù)嗎?");  pthread_exit(NULL);}void*thread2(){   printf(”thread2:I’m thread2\n");  for (i= 0;i< MAX;i++) ?。   。穑颍閚tf(”thread2?。簄umber=%d",number);  ?。穑鬶read_mutex_lock(&mut);     number++; pthread_mutex_unlock(&mut);      sleep(3);  ?。 ri

4、ntf(”thread2:主函數(shù)在等我完成任務(wù)嗎?n"); pthread_exit(NULL);}voidthread_create(void){int temp;    memset(&thread,0,sizeof(thread)); ?。?comment1?。?創(chuàng)建線程*/ ?。閒((temp= pthread_create(&thread[0],NULL,thread1, NULL)) !=0) //comment2    printf("線程1創(chuàng)建失?。。睿ⅲ?;else     printf("線程1被創(chuàng)建n");    if((temp=pthread_c

5、reate(&thread[1],NULL, thread2,NULL))??!=0)//comment3   printf("線程2創(chuàng)建失敗"); else      printf("線程2被創(chuàng)建n”);}voidthread_wait(void){   ?。?等待線程結(jié)束*/  if(thread[0]!=0){    //comment4      pthread_join(thread[0],NULL);    printf("線程1已經(jīng)結(jié)束n");} if(thread[1]??!=0){   //comment5      pthread_join(thread[

6、1],NULL);      printf("線程2已經(jīng)結(jié)束”);  }}intmain(){   /*用默認(rèn)屬性初始化互斥鎖*/   pthread_mutex_init(&mut,NULL);printf("我是主函數(shù)哦,我正在創(chuàng)建線程,呵呵n");   thread_creat(yī)e();printf(”我是主函數(shù)哦,我正在等待線程完成任務(wù)阿,呵呵”); thread_wait(); return0;}?下面我們先來編譯、執(zhí)行一下??引文: ?falcon@falcon:~/program/c/code/ftp$?。鏲c-lpthread —othread_exa

7、mplethread_example.c?falcon@falcon:~/program/c/code/ftp$ 。/thread_example我是主函數(shù)哦,我正在創(chuàng)建線程,呵呵線程1被創(chuàng)建?線程2被創(chuàng)建我是主函數(shù)哦,我正在等待線程完成任務(wù)阿,呵呵thread1:I'm thread?。?thread1 : number= 0thread2:I’m?。簦瑁騟ad2?thread2:number?。??thread1:number =2?thread2:number=3thread1:number =4

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。