freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)——讀者寫(xiě)者問(wèn)題(留存版)

  

【正文】 程打開(kāi)已存在的互斥對(duì)象的句柄。否則,調(diào)用者創(chuàng)建互斥對(duì)象。如果lpMutexAttributes為NULL,那么互斥對(duì)象獲得默認(rèn)的安全描述符。線程結(jié)束時(shí)不必從操作系統(tǒng)中移去該線程對(duì)象。使用GetExitcodeThread函數(shù)來(lái)獲得線程的返回值。該函數(shù)必須存在于遠(yuǎn)程進(jìn)程中。(請(qǐng)根據(jù)自己編寫(xiě)的寫(xiě)者優(yōu)先程序進(jìn)行分析)四、相關(guān)API函數(shù)說(shuō)明函數(shù)功能:該函數(shù)創(chuàng)建一個(gè)在調(diào)用進(jìn)程的地址空間中執(zhí)行的線程。第—字段為—個(gè)正整數(shù),表示線程序號(hào)。用信號(hào)量機(jī)制分別實(shí)現(xiàn)讀者優(yōu)先和寫(xiě)者優(yōu)先的讀者—寫(xiě)者問(wèn)題。讀者優(yōu)先指的是除非有寫(xiě)者在寫(xiě)文件,否則讀者不需要等待。若lpThreadAttributes為NULL。函數(shù)原型:VOID ExitThread (DWORD dwExitCode);參數(shù):若取值為INFINITE則造成無(wú)限延遲。lpName:指向以NULL結(jié)尾的字符串,該字符串指定了互斥對(duì)象名。當(dāng)任何一個(gè)或者所有的互斥對(duì)象都為信號(hào)態(tài)時(shí),返回多對(duì)象等待函數(shù)指令。一個(gè)進(jìn)程可以在調(diào)用DuplicateHandle函數(shù)時(shí)指定互斥對(duì)象句柄來(lái)創(chuàng)建一個(gè)可以被其他進(jìn)程使用的雙重句柄。當(dāng)—個(gè)線程擁有—個(gè)互斥對(duì)象后,它可以用該互斥對(duì)象多次調(diào)用等待函數(shù)而不會(huì)阻塞。WAIT_OBJECT_0:指定對(duì)象的狀態(tài)被置為信號(hào)態(tài)。因此,如果用戶有一個(gè)創(chuàng)建窗口的線程,用MsgWaitForMultipleObjects或MsgWaitForMultipleObjectEx函數(shù),而不要用SignalObjectAndWait函數(shù)。dwMilliseconds:指定以毫秒為單位的超時(shí)間隔。LpAttributes:安全屬性。函數(shù)原型:BOOL ReleaseSemaphore (HANDLE hSemaphore, LONG lReleaseCount,LPLONG lpPreviousCount)。函數(shù)功能:該函數(shù)初始化臨界區(qū)對(duì)象:函數(shù)原型:VOID InitializeCriticalSection (LPCRITIAL_SECTION lpCriticalSection)。五、參考源代碼下面的程序已經(jīng)在Windows 2000上實(shí)現(xiàn)。////////////////////////////////////////////////////讀者優(yōu)先——讀者線程//P:讀者線程信息void RP_ReaderThread(void *p){ //互斥變量 HANDLE h_Mutex。 //釋放互斥信號(hào) //讀文件 printf(Reader thread %d begins to read file.\n,m_serial)。 //等待資源 EnterCriticalSection(amp。RP_Write)。 } else //創(chuàng)建寫(xiě)者線程 h_Thread[i]=CreateThread(NULL,0, (LPTHREAD_START_ROUTINE)(RP_WriterThread), amp。m_persist=(DWORD)(((ThreadInfo*)(p))persist *INTE_PER_SEC)。//退出線程printf(Reader thread %d finished reading file.\n,m_serial)。 //延遲等待printf(Writer thread %d sents the writing require.\n,m_serial)。cs_Read)。cs_Write)。thread_info[i],0,amp。139。) ReaderPriority()。因?yàn)椴恢烙卸嗌倬€程,所以源文件最初有:define MAX_THREAD_NUM 64 //最大線程數(shù)目即線程最多不能超過(guò)MAX_THREAD_NUM個(gè)。復(fù)習(xí)用信號(hào)量實(shí)現(xiàn)讀者——寫(xiě)者問(wèn)題的相關(guān)知識(shí),并在Windows2000/XP環(huán)境下完成寫(xiě)者優(yōu)先的編程(可以參照給出的讀者優(yōu)先的相關(guān)程序)。不及格:根本不理解讀者寫(xiě)者問(wèn)題,不能回答老師提出的相關(guān)問(wèn)題。Reader thread 4 sents the reading require.Reader thread 4 begins to read file.讀者4發(fā)出讀申請(qǐng)后、立刻得到滿足。用WairForSingleSigna1函數(shù)可以獲得一個(gè)Mutex的所有權(quán),類似于P操作,而ReleaseMutex函數(shù)可以釋放一個(gè)Mutex的所有權(quán),類似于V操作。339。 printf(*********************************************\n)。i(int)(n_thread)。ThreadInfo thread_info[MAX_THREAD_NUM]。cs_Write)。//從參數(shù)中獲得信息m_serial=((ThreadInfo*)(p))serial 。cs_Read)。 //延遲時(shí)間DWORD m_persist。r39。 //線程對(duì)象的數(shù)組 HANDLE h_Thread[MAX_THREAD_NUM]。 m_delay=(DWORD)(((ThreadInfo*)(p))delay*INTE_PER_SEC)。 //讀者數(shù)目增加 readcount++。 //線程序號(hào) char entity。函數(shù)功能:該函數(shù)釋放指定臨界區(qū)對(duì)象的所有權(quán)。請(qǐng)記住,lpPreviousCount所傳回來(lái)的是一個(gè)瞬間值。返回值:如果成功就傳回一個(gè)handle,否則傳回NULL。若想獲得更多錯(cuò)誤信息,請(qǐng)調(diào)用GetLastError函數(shù)。如果為T(mén)RUE,當(dāng)lpHandles指向的數(shù)組里的全部對(duì)象為信號(hào)態(tài)時(shí),函數(shù)返回。如果一個(gè)線程創(chuàng)建了任何窗口,它必須處理進(jìn)程消息。如果dwMillseconds是0,函數(shù)測(cè)試對(duì)象的狀態(tài)并立刻返回;如果dwMillseconds是INFINITE,函數(shù)從不超時(shí)。一個(gè)線程通過(guò)調(diào)用等待函數(shù)擁有互斥對(duì)象。由于多進(jìn)程能夠擁有相同互斥對(duì)象的句柄,通過(guò)使用這個(gè)對(duì)象,可使多進(jìn)程同步。備注:由函數(shù)CreateMutex返回的句柄有MUTEX_ALL_ACCESS權(quán)限可以去訪問(wèn)新的互斥對(duì)象,并且可用在請(qǐng)求互斥對(duì)象句柄的任何函數(shù)中。如果該值為T(mén)RUE,并且調(diào)用者創(chuàng)建互斥對(duì)象,那么調(diào)用線程獲得互斥對(duì)象所屬身份。函數(shù)原型:VOID Sleep (DWORD dwMulliseconds);參數(shù):一個(gè)線程終止時(shí)。lpThreadAttributes:指向一個(gè)LPSECURITY_ATTRIBUTES結(jié)構(gòu)。第四字段為一個(gè)正數(shù),表示讀寫(xiě)操作的持續(xù)時(shí)間。操作系統(tǒng)課程設(shè)計(jì)——讀者寫(xiě)者問(wèn)題一、實(shí)習(xí)要求在windows 2000環(huán)境下,創(chuàng)建一個(gè)控制臺(tái)進(jìn)程,此進(jìn)程包含n個(gè)線程。當(dāng)線程讀寫(xiě)申請(qǐng)成功后,開(kāi)始對(duì)共享資源的讀寫(xiě)操作,該操作持續(xù)相應(yīng)時(shí)間后結(jié)束,并釋放共享資源。該結(jié)構(gòu)決定了返回的句柄是否可被子進(jìn)程繼承。dwCreationFlags:定義控制進(jìn)程創(chuàng)建的附加標(biāo)志。該線程對(duì)象被設(shè)為發(fā)信號(hào)狀態(tài),以滿足在該對(duì)象上等待的所有進(jìn)程。dwMilliseconds:定義掛起執(zhí)行線程的時(shí)間,以毫秒(ms)為單位。否則,調(diào)用線程不能獲得互斥對(duì)象所屬身份。調(diào)用進(jìn)程中的任何線程可以在調(diào)用等待函數(shù)時(shí)指定互斥對(duì)象句柄。以下為共享對(duì)象機(jī)制:創(chuàng)建該互斥對(duì)象的線程也擁有互斥對(duì)象。返回值:如果函數(shù)調(diào)用成功,返回值表明引起函數(shù)返回的事件。消息廣播被發(fā)送到系統(tǒng)的所有窗口。如果為FALSE,當(dāng)由lpHandles指向的數(shù)組里的任—對(duì)象為信號(hào)態(tài)時(shí),函數(shù)返回。函數(shù)功能:該函數(shù)是創(chuàng)建一個(gè)有名或者無(wú)名信號(hào)對(duì)象。不論哪一種情況,GetLastError都會(huì)傳回一個(gè)合理的結(jié)果。你不可以把1ReleaseCount加上lpPreviousCount,就當(dāng)做是semaphore的當(dāng)前值,因?yàn)槠渌€程可能已經(jīng)改變了Semaphore的值。函數(shù)原型:VOID LeaveCriticalSection (LPCRITICAL_SECTION lpCriticalSection)。 //線程類別(判斷是讀者線程還是寫(xiě)者線程) double delay。 if(readcount==1) { //第一個(gè)讀者,等待資源 EnterCriticalSection(amp。 m_persist=(DWORD)(((ThreadInfo*)(p))persist*INTE_PER_SEC)。 ThreadInfo thread_info[MAX_THREAD_NUM]。) { //創(chuàng)建讀者線程 h_Thread[i]=CreateThread(NULL,0, (LPTHREAD_START_ROUTINE)(RP_ReaderThread), amp。 //讀文件持續(xù)時(shí)間int m_serial。ReleaseMutex(h_Mutex1)。m_delay=(DWORD)(((ThreadInfo*)(p))delay *INTE_PER_SEC)。wait_for_mutex3=WaitForSingleObject(h_Mutex3,1)。readcount=0。i++){if(thread_info[i].entity==READER||thread_info[i].entity ==39。 printf(Enter your choice(1,2or3):)。) return 0。用EnterCriticalSection函數(shù)可以進(jìn)入一個(gè)CriticalSectin,類似于P操作,而LeaveCriticalSection函數(shù)離開(kāi)一個(gè)CriticalSection,類似于V操作。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1