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

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

ID:61455343

大?。?98.50 KB

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

時(shí)間:2021-02-01

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

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

1、實(shí)驗(yàn)一:多線程編程課程網(wǎng)絡(luò)高級(jí)編程實(shí)驗(yàn)項(xiàng)目多線程編程成績(jī)專業(yè)班級(jí)網(wǎng)絡(luò)工程2012學(xué)號(hào)批閱日期姓名王璽實(shí)驗(yàn)日期2014-11-24指導(dǎo)教師一、實(shí)驗(yàn)?zāi)康模?)熟悉Linux下c編程環(huán)境(2)掌握Linux進(jìn)程創(chuàng)建(3)掌握Linux線程及線程同步請(qǐng)將作業(yè)及工程提交至天空教室作業(yè)處,注意截止時(shí)間。注意:需要截圖的地方,非特殊情況不要全屏截圖。所有相同或非常相似作業(yè)一律記為0分。二、實(shí)驗(yàn)步驟(一)熟悉編程環(huán)境1.在編輯器中編輯源程序main.c,calc.cmain.c文件內(nèi)容為#includeintcalc(int);intmain(intargc,char*argv[]){i

2、ntiInput=0,iOutput=0;inti=0;scanf("%i",&iInput);while(iInput<0){printf("Pleaseinputapositiveinteger!");scanf("%i",&iInput);}iOutput=calc(iInput);printf("Resultis:%i",iOutput);return0;}calc.c的文件內(nèi)容為#includeintcalc(intiIn){inti=0,iOut=0;iOut=iIn;for(i=0;i

3、Out;}2.編譯并運(yùn)行編譯方法gccmain.cclac.c./a.out運(yùn)行結(jié)果遇到的問(wèn)題及解決方法(二)進(jìn)程的使用1.運(yùn)行以下程序#include#include#includeintmain(){inti;/*獲得當(dāng)前進(jìn)程和其父進(jìn)程的ID號(hào)*/for(i=0;i<3;i++){fork();printf("i=%d當(dāng)前進(jìn)程的ID號(hào)為:%d;父進(jìn)程ID為:%d",i,getpid(),getppid());}//sleep(2);return0;}2.給出結(jié)果并分析3.如果恢復(fù)sleep語(yǔ)句,得到什么結(jié)果1.運(yùn)行教材

4、thread.c,觀察結(jié)果并做簡(jiǎn)要分析2.線程互斥,運(yùn)行以下代碼,觀察結(jié)果并簡(jiǎn)要分析#include#include#include#includevoid*producter_f(void*arg);/*生產(chǎn)者*/void*consumer_f(void*arg);/*消費(fèi)者*/intbuffer_has_item=0;/*緩沖區(qū)計(jì)數(shù)值*/_mutex_tmutex;/*互斥區(qū)*/intrunning=1;/*線程運(yùn)行控制*/intmain(void){pthread_tconsumer_t;/*消費(fèi)者線程參數(shù)

5、*/pthread_tproducter_t;/*生產(chǎn)者線程參數(shù)*/pthread_mutex_init(&mutex,NULL);/*初始化互斥*/pthread_create(&producter_t,NULL,(void*)producter_f,NULL);/*建立生產(chǎn)者線程*/pthread_create(&consumer_t,NULL,(void*)consumer_f,NULL);/*建立消費(fèi)者線程*/usleep(1);/*等待,線程創(chuàng)建完畢*/running=0;/*設(shè)置線程退出值*/pthread_join(consumer_t,NULL);/*等待消費(fèi)者線程退出*/

6、pthread_join(producter_t,NULL);/*等待生產(chǎn)者線程退出*/pthread_mutex_destroy(&mutex);/*銷毀互斥*/return0;}void*producter_f(void*arg)/*生產(chǎn)者線程程序*/{while(running)/*沒(méi)有設(shè)置退出值*/{pthread_mutex_lock(&mutex);/*進(jìn)入互斥區(qū)*/buffer_has_item++;/*增加計(jì)數(shù)值*/printf("生產(chǎn),總數(shù)量:%d",buffer_has_item);/*打印信息*/pthread_mutex_unlock(&mutex);/*離開(kāi)互

7、斥區(qū)*/}}void*consumer_f(void*arg)/*消費(fèi)者線程程序*/{while(running)/*沒(méi)有設(shè)置退出值*/{pthread_mutex_lock(&mutex);/*進(jìn)入互斥區(qū)*/buffer_has_item--;/*減小計(jì)數(shù)值*/printf("消費(fèi),總數(shù)量:%d",buffer_has_item);/*打印信息*/pthread_mutex_unlock(&mutex);/*離開(kāi)互

當(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. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(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)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。