2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)報(bào)告課程計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)名稱windows系統(tǒng)的多線程同步專業(yè)班級姓名學(xué)號(hào)同組人姓名同組人學(xué)號(hào)實(shí)驗(yàn)日期教師審批簽字二零零年月日信號(hào)量(CSemaphe)A、使用CCriticalSection類當(dāng)多個(gè)線程訪問一個(gè)獨(dú)占性共享資源時(shí)可以使用“臨界區(qū)”對象。任一時(shí)刻只有一個(gè)線程可以擁有臨界區(qū)對象,擁有臨界區(qū)的線程可以訪問被保護(hù)起來的資源或代碼段,其他希望進(jìn)入臨界區(qū)的線程將被掛起等待,直到擁有臨界區(qū)的線程放棄臨界區(qū)時(shí)為止,這樣就保證了不會(huì)

2、在同一時(shí)刻出現(xiàn)多個(gè)線程訪問共享資源。CCriticalSection類的用法非常簡單,步驟如下:定義CCriticalSection類的一個(gè)全局對象(以使各個(gè)線程均能訪問),如CCriticalSectioncritical_section;在訪問需要保護(hù)的資源或代碼之前,調(diào)用CCriticalSection類的成員Lock()獲得臨界區(qū)對象:critical_section.Lock()在線程中調(diào)用該函數(shù)來使線程獲得它所請求的臨界區(qū)。

3、如果此時(shí)沒有其它線程占有臨界區(qū)對象,則調(diào)用Lock()的線程獲得臨界區(qū);否則,線程將被掛起,并放入到一個(gè)系統(tǒng)隊(duì)列中等待,直到當(dāng)前擁有臨界區(qū)的線程釋放了臨界區(qū)時(shí)為止。訪問臨界區(qū)完畢后,使用CCriticalSection的成員函數(shù)Unlock()來釋放臨界區(qū):critical_section.Unlock()再通俗一點(diǎn)講,就是線程A執(zhí)行到critical_section.Lock()語句時(shí),如果其它線程(B)正在執(zhí)行critical_se

4、ction.Lock()語句后且critical_section.Unlock()語句前的語句時(shí),線程A就會(huì)等待,直到線程B執(zhí)行完critical_section.Unlock()語句,線程A才會(huì)繼續(xù)執(zhí)行。B、使用CEvent類CEvent類提供了對事件的支持。事件是一個(gè)允許一個(gè)線程在某種情況發(fā)生時(shí),喚醒另外一個(gè)線程的同步對象。例如在某些網(wǎng)絡(luò)應(yīng)用程序中,一個(gè)線程(記為A)負(fù)責(zé)監(jiān)聽通訊端口,另外一個(gè)線程(記為B)負(fù)責(zé)更新用戶數(shù)據(jù)。通過使用

5、CEvent類,線程A可以通知線程B何時(shí)更新用戶數(shù)據(jù)。每一個(gè)CEvent對象可以有兩種狀態(tài):有信號(hào)狀態(tài)和無信號(hào)狀態(tài)。線程監(jiān)視位于其中的CEvent類對象的狀態(tài),并在相應(yīng)的時(shí)候采取相應(yīng)的操作。在MFC中,CEvent類對象有兩種類型:人工事件和自動(dòng)事件。一個(gè)自動(dòng)CEvent對象在被至少一個(gè)線程釋放后會(huì)自動(dòng)返回到無信號(hào)狀態(tài);而人工事件對象獲得信號(hào)后,釋放可利用線程,但直到調(diào)用成員函數(shù)ReSetEvent()才將其設(shè)置為無信號(hào)狀態(tài)。在創(chuàng)建CE

6、vent類的對象時(shí),默認(rèn)創(chuàng)建的是自動(dòng)事件。CEvent類的各成員函數(shù)的原型和參數(shù)說明如下:1、CEvent(BOOLbInitiallyOwn=FALSEBOOLbManualReset=FALSELPCTSTRlpszName=NULLLPSECURITY_ATTRIBUTESlpsaAttribute=NULL)bInitiallyOwn:指定事件對象初始化狀態(tài),TRUE為有信號(hào),F(xiàn)ALSE為無信號(hào);bManualReset:指定要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論