版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、word.讀者寫者問題C+程序原創(chuàng)作品演示效果圖:程序完整代碼:#include <windows.h>#include <iostream.h>#include <fstream.h>#include <string.h> #include<string>#include<stdlib.h>/包含清屏頭文件/全局變量 int empty=1;/信號量int wrIn=1;/信號量int max;int temp30;int *wait,*next;int count=0;/記錄已經(jīng)完成操作的線程數(shù)int waitSema
2、pore;int type;/類型記錄int writc=1;int readc=1;void reader()/讀者函數(shù)開始empty-;/P操作改變信號量cout<<"讀者獲得資源"<<"("SYSTEMTIME sys;GetLocalTime(&sys);/輸出系統(tǒng)時間cout<<"系統(tǒng)時間:"<<sys.wHour<<":"<<sys.wMinute<<":"<<sys.wSecon
3、d<<":"<<sys.wMilliseconds<<")"<<endl;cout<<endl<<"*"<<"讀者正在進行讀操作."<<endl;/empty+;/信號量count+;/讀者函數(shù)結(jié)尾void writer()/寫者函數(shù)開始empty-;/P操作改變信號量wrIn-;/P操作改變信號量cout << " 寫者"<<writc<<"獲得資源&q
4、uot; <<"("SYSTEMTIME sys;GetLocalTime(&sys);/輸出系統(tǒng)時間cout<<"系統(tǒng)時間:"<<sys.wHour<<":"<<sys.wMinute<<":"<<sys.wSecond<<":"<<sys.wMilliseconds<<")"<<endl;cout<<"請輸入線程
5、要寫入的內(nèi)容,以/結(jié)尾"<<endl;char ch='a'ofstream outfile("f.txt",ios:out|ios:app); if(!outfile) cerr<<"open file error!"<<endl; abort(); while(ch!='/') cin>>ch; outfile<<ch; cout<<endl<<"*" <<"寫者"<&
6、lt;writc<<"正在進行寫操作." << endl; outfile.close();count+;/wrIn+;/V操作改變信號量/empty+;/V操作改變信號量/寫者函數(shù)結(jié)尾void codeIn()/輸入界面int ru;cout<<"請輸入你要創(chuàng)立多少個線程:"<<endl;cin>>max;for(int i=0;i<max;i+)cout<<"你所要創(chuàng)立的第"<<i+1<<"個線程類型為:1.讀者 2.寫
7、者"<<endl;cin>>ru;/if(ru=1|ru=2)tempi=ru;elsecout<<"輸入有誤!請重新輸入"<<endl;/判斷錯誤if(i=max-1)/錄入最后一個線程類型操作/system("cls");/清屏HANDLE hOut; hOut = GetStdHandle(STD_OUTPUT_HANDLE); /設(shè)置輸出字體顏色redSetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_INTENSITY);
8、cout<<endl<<"輸入完畢!"<<endl;hOut = GetStdHandle(STD_OUTPUT_HANDLE); /設(shè)置輸出字體背景SetConsoleTextAttribute(hOut, BACKGROUND_GREEN | BACKGROUND_INTENSITY); for(int j=0;j<max;j+)/輸出錄入結(jié)果cout<<"線程"<<j+1<<"為:"if(tempj=1)cout<<"讀者&quo
9、t;<<endl;else cout<<"寫者"<<endl;/輸出錄入結(jié)果cout<<"下面將進行動態(tài)演示:"<<endl<<endl;system("pause");cout<<endl;/錄入最后一個線程類型操作/錄入界面結(jié)束/codeIn()int main()/主函數(shù)codeIn();/錄入界面wait=&temp0;while(wait<&tempmax&&count<max)waitSemapo
10、re=1;next=wait;while(*next=1|*next=2)/線程調(diào)用算法if(*next=1)/readerif(empty=1|(empty=0&&wrIn=1&&*wait!=2)/表達寫者優(yōu)先reader();/調(diào)用讀者函數(shù)type=1;elsecout<<""<<"讀者此時正在等待資源"<<""<<endl;/Sleep(5000);/sleep()if(waitSemapore=1)wait=next;/this reader i
11、s waiting,locate it.waitSemapore-;else/writerif(empty=1)writer();/調(diào)用寫者函數(shù)type=2;elsecout<<""<<"寫者此時正在等待資源"<<""<<endl; /Sleep(5000);/sleep()if(waitSemapore=1)/this writer is waiting,find it's location.wait=next;waitSemapore-;/writer is endnext+;/1while()if(type=1)cout<<""<<"讀者"<<readc<<"讀完畢,釋放資源"<<endl;readc+;empty+;/讀者用的,但是為了在輸出時演示出運行狀態(tài),不得不將其放在此處 Sleep(3000);/sleep()cout<<endl;else if(type=2)cout<<""<<"寫者"<<writc<<"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科學(xué)技術(shù)職業(yè)學(xué)院《工程材料與構(gòu)造》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東交通職業(yè)技術(shù)學(xué)院《油層物理實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東建設(shè)職業(yè)技術(shù)學(xué)院《電子商務(wù)原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工商職業(yè)技術(shù)大學(xué)《中國影視鑒賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 閑聊培訓(xùn)課件
- 《動態(tài)路由協(xié)議配置》課件
- 贛西科技職業(yè)學(xué)院《大數(shù)據(jù)金融應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 應(yīng)急救援安全培訓(xùn)課件
- 贛州師范高等??茖W(xué)?!缎畔踩夹g(shù)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 工程寶培訓(xùn)課件
- 南方的耕作制度
- 期末測試卷(試題)-2023-2024學(xué)年人教精通版英語五年級上冊
- 2020年護理組織管理體系
- 高二(上學(xué)期)期末數(shù)學(xué)試卷及答案
- 2024年成都溫江興蓉西城市運營集團有限公司招聘筆試沖刺題(帶答案解析)
- 重癥感染和感染性休克治療新進展
- 涉警網(wǎng)絡(luò)負面輿情應(yīng)對與處置策略
- 5人小品《聚寶盆銀行》臺詞
- 小學(xué)道德與法治課活動設(shè)計方案
- 混凝土結(jié)構(gòu)設(shè)計原理智慧樹知到期末考試答案2024年
- GMP理念在制藥工程項目中的應(yīng)用
評論
0/150
提交評論