實(shí)驗(yàn)一 Linux多線(xiàn)程編程一.doc

實(shí)驗(yàn)一 Linux多線(xiàn)程編程一.doc

ID:55704499

大?。?7.00 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2020-05-25

實(shí)驗(yàn)一 Linux多線(xiàn)程編程一.doc_第1頁(yè)
實(shí)驗(yàn)一 Linux多線(xiàn)程編程一.doc_第2頁(yè)
實(shí)驗(yàn)一 Linux多線(xiàn)程編程一.doc_第3頁(yè)
實(shí)驗(yàn)一 Linux多線(xiàn)程編程一.doc_第4頁(yè)
實(shí)驗(yàn)一 Linux多線(xiàn)程編程一.doc_第5頁(yè)
資源描述:

《實(shí)驗(yàn)一 Linux多線(xiàn)程編程一.doc》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、實(shí)驗(yàn)一Linux多線(xiàn)程編程I一、實(shí)驗(yàn)?zāi)康氖煜NUGCC編譯器,能夠用Pthreads線(xiàn)程庫(kù)熟練編寫(xiě)多線(xiàn)程程序。二、實(shí)驗(yàn)內(nèi)容1、設(shè)一個(gè)double型的一維數(shù)組,數(shù)組長(zhǎng)度是1,000,000,計(jì)算全數(shù)組部元素的和。要求:1)編制一個(gè)串行程序,僅有一個(gè)主線(xiàn)程完成上述計(jì)算。2)編制一個(gè)多線(xiàn)程程序,除主線(xiàn)程外,派生四個(gè)子線(xiàn)程完成上述計(jì)算。分別獲得以上兩個(gè)程序的計(jì)算時(shí)間,對(duì)比分析。2、定義以下三個(gè)數(shù)組:#defineLEN;DoubleA[LEN],B[LEN],C[LEN];for(i=0;i++;i

2、*2;A[i]=B[i]+C[i]}分別編制一段串行程序和一段多線(xiàn)程程序(包括四個(gè)線(xiàn)程),執(zhí)行上述循環(huán)體,比較其執(zhí)行所花費(fèi)的時(shí)間。提示:clock()是C/C++中的計(jì)時(shí)函數(shù),與其相關(guān)的數(shù)據(jù)類(lèi)型是clock_t,通過(guò)clock()可以獲得當(dāng)前的系統(tǒng)時(shí)間。四、實(shí)驗(yàn)步驟1、打開(kāi)Linux終端2、輸入命令$emacshello.c&(文件名可以自定義)3、編制源程序,注意加入必要的頭文件#include,對(duì)于信號(hào)量,還需要加頭文件。4、編譯:$gcc-ohellohello.c–lpthread對(duì)于是信號(hào)

3、量,編譯時(shí)還需要加-lrt參數(shù)。5、執(zhí)行:./hello五、實(shí)驗(yàn)要求寫(xiě)出完整的源程序,給出程序執(zhí)行的結(jié)果。串行實(shí)驗(yàn)源代碼如下:#include#include#include#include#defineLENvoidmain(){time_tt1,t2;doubleD[LEN];inti;doublesum=0.0;t1=clock();for(i=0;i

4、);}執(zhí)行結(jié)果:多線(xiàn)程實(shí)驗(yàn)源代碼如下:#include#include#include#include#defineLENpthread_tthread[4];pthread_mutex_tmut;intnumber=0,i;doubleD[LEN];doublesum=0.0;void*thread1(){for(i=0;i

5、thread_exit(NULL);}void*thread2(){for(i=0;i

6、i

7、d_create(&thread[1],NULL,thread2,NULL))!=0)printf("線(xiàn)程2創(chuàng)建失敗");elseprintf("線(xiàn)程2被創(chuàng)建");if((temp=pthread_create(&thread[2],NULL,thread3,NULL))!=0)printf("線(xiàn)程3創(chuàng)建失敗");elseprintf("線(xiàn)程3被創(chuàng)建");if((temp=pthread_create(&thread[3],NULL,thread4,NULL))!=0)printf("線(xiàn)程4創(chuàng)建失敗");elseprintf("線(xiàn)程4被創(chuàng)

8、建");}voidthread_wait(void){if(thread[0]!=0){pthread_join(thread[0]

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

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

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