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

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)——讀者寫者問題-文庫吧在線文庫

2025-04-27 02:43上一頁面

下一頁面
  

【正文】 件是否被滿足。如果一個(gè)線程創(chuàng)建了任何窗口,它必須處理進(jìn)程消息。nCount:指定由lpHandles所指向的數(shù)組中的句柄對象數(shù)目最大對象句柄數(shù)目MAXIMUM_WAIT_OBJECTS。如果為TRUE,當(dāng)lpHandles指向的數(shù)組里的全部對象為信號態(tài)時(shí),函數(shù)返回。返回值;如果函數(shù)調(diào)用成功,返回值表明引起函數(shù)返回的事件。若想獲得更多錯(cuò)誤信息,請調(diào)用GetLastError函數(shù)。必須大于或等于0,并且小于或等于MaxmumCount。返回值:如果成功就傳回一個(gè)handle,否則傳回NULL。lReleaseCount:Semaphore現(xiàn)值的增額。請記住,lpPreviousCount所傳回來的是一個(gè)瞬間值。但是,不能保證線程獲得臨界區(qū)所有權(quán)的順序,系統(tǒng)將對所有線程公平處理。函數(shù)功能:該函數(shù)釋放指定臨界區(qū)對象的所有權(quán)。 //讀者define WRITER 39。 //線程序號 char entity。 //延遲時(shí)間 DWORD m_persist。 //讀者數(shù)目增加 readcount++。 //讀者數(shù)目減少 readcount。 m_delay=(DWORD)(((ThreadInfo*)(p))delay*INTE_PER_SEC)。 //退出線程 printf(Writer thread %d finishing writing to the file.\n,m_serial)。 //線程對象的數(shù)組 HANDLE h_Thread[MAX_THREAD_NUM]。 while(inFile) { //讀入每一個(gè)讀者、寫者的信息 inFilethread_info[n_thread].serial。r39。 printf(All reader and writer have finished operating.\n)。 //延遲時(shí)間DWORD m_persist。//讀者進(jìn)去臨界區(qū)EnterCriticalSection(amp。cs_Read)。cs_Write)。//從參數(shù)中獲得信息m_serial=((ThreadInfo*)(p))serial 。cs_Read)。cs_Write)。DWORD wait_for_all。ThreadInfo thread_info[MAX_THREAD_NUM]。 (file)。i(int)(n_thread)。thread_ID)。 printf(*********************************************\n)。239。339。 system(cls)。用WairForSingleSigna1函數(shù)可以獲得一個(gè)Mutex的所有權(quán),類似于P操作,而ReleaseMutex函數(shù)可以釋放一個(gè)Mutex的所有權(quán),類似于V操作。一種是在主函數(shù)的最后加上Sleep(1000),即通過主函數(shù)睡眠的方法等待其他進(jìn)程結(jié)束,這當(dāng)然不是一種很好的方法,因?yàn)樗叩却臅r(shí)間沒法控制。Reader thread 4 sents the reading require.Reader thread 4 begins to read file.讀者4發(fā)出讀申請后、立刻得到滿足。優(yōu):編寫的寫者優(yōu)先程序運(yùn)行結(jié)果正確,程序有完整的注釋,對編寫的程序及結(jié)果的分析正確,課程設(shè)計(jì)報(bào)告完整,并能正確地回答老師提出的問題。不及格:根本不理解讀者寫者問題,不能回答老師提出的相關(guān)問題。中:編寫的程序基本正確,對程序及結(jié)果的分析也基本正確,課程設(shè)計(jì)報(bào)告基本完整,基本能回答老師提出的問題。復(fù)習(xí)用信號量實(shí)現(xiàn)讀者——寫者問題的相關(guān)知識,并在Windows2000/XP環(huán)境下完成寫者優(yōu)先的編程(可以參照給出的讀者優(yōu)先的相關(guān)程序)。相比之下,考慮到運(yùn)行效率,還是實(shí)例中給出的方法比較好些。因?yàn)椴恢烙卸嗌倬€程,所以源文件最初有:define MAX_THREAD_NUM 64 //最大線程數(shù)目即線程最多不能超過MAX_THREAD_NUM個(gè)。臨界區(qū)對象CriticalSection則與P、V操作中初值為1的互斥信號量語意相同。) ReaderPriority()。339。139。 while(true) { //打印提示信息 printf(*********************************************\n)。thread_info[i],0,amp。inFilethread_info[n_thread].delay。cs_Write)。h_Mutex2=CreateMutex(NULL,FALSE,_T(mutex2))。cs_Read)。printf(Writer thread %d begins to write to the file.\n,m_serial)。 //延遲等待printf(Writer thread %d sents the writing require.\n,m_serial)。 //延遲時(shí)間DWORD m_persist。//退出線程printf(Reader thread %d finished reading file.\n,m_serial)。if(readcount==1){// 如果是第1個(gè)讀者,等待寫者寫完EnterCriticalSection(amp。m_persist=(DWORD)(((ThreadInfo*)(p))persist *INTE_PER_SEC)。h_Mutex2=OpenMutex(MUTEX_ALL_ACCESS,FALSE,_T(mutex2))。 } else //創(chuàng)建寫者線程 h_Thread[i]=CreateThread(NULL,0, (LPTHREAD_START_ROUTINE)(RP_WriterThread), amp。 ()。RP_Write)。 //線程數(shù)目 DWORD thread_ID。 //等待資源 EnterCriticalSection(amp。 //釋放互斥信號}////////////////////////////////////////////////////讀者優(yōu)先——寫者線程//P:寫者線程信息void RP_WriterThread(void*p){ DWORD m_delay。 //釋放互斥信號 //讀文件 printf(Reader thread %d begins to read file.\n,m_serial)。 m_persist=(DWORD)(((ThreadInfo*)(p))persist*INTE_PER_SEC)。////////////////////////////////////////////////////讀者優(yōu)先——讀者線程//P:讀者線程信息void RP_ReaderThread(void *p){ //互斥變量 HANDLE h_Mutex。 //寫者數(shù)目CRITICAL_SECTION RP_Write。五、參考源代碼下面的程序已經(jīng)在Windows 2000上實(shí)現(xiàn)。當(dāng)調(diào)用線程被賦予所有權(quán)時(shí),該函數(shù)返回。函數(shù)功能:該函數(shù)初始化臨界區(qū)對象:函數(shù)原型:VOID InitializeCriticalSection (LPCRITIAL_SECTION lpCriticalSection)。返回值:如果成功,則返回TRUE。函數(shù)原型:BOOL ReleaseSemaphore (HANDLE hSemaphore, LONG lReleaseCount,LPLONG lpPreviousCount)。LpAttributes:安全屬性。WAIT_ABANDONED_0到WAIT_ABANDONED_0+nCount1:如果bWaitAll為TRUE,那么返回值表明所有指定對象的狀態(tài)為信號態(tài),并且至少一個(gè)對象是己放棄的互斥對象。dwMilliseconds:指定以毫秒為單位的超時(shí)間隔。在WindowsNT中,該句柄必須有SYNCHRONIZE訪問權(quán)限。因此,如果用戶有一個(gè)創(chuàng)建窗口的線程,用MsgWaitForMultipleObjects或MsgWaitForMultipleObjectEx函數(shù),而不要用SignalObjectAndWait函數(shù)。修改僅發(fā)生在引起函數(shù)返回的對象身上。WAIT_OBJECT_0:指定對象的狀態(tài)被置為信號態(tài)。若想獲得更多的信息,請查看Standard Access Rights。當(dāng)—個(gè)線程擁有—個(gè)互斥對象后,它可以用該互斥對象多次調(diào)用等待函數(shù)而不會(huì)阻塞。為CreateMutex或OpenMutex函數(shù)的返回值。一個(gè)進(jìn)程可以在調(diào)用DuplicateHandle函數(shù)時(shí)指定互斥對象句柄來創(chuàng)建一個(gè)可以被其他進(jìn)程使用的雙重句柄。然而,線程必須為每一次等待調(diào)用—次ReleaseMutex函數(shù)來釋放該互斥對象。當(dāng)任何一個(gè)或者所有的互斥對象都為信號態(tài)時(shí),返回多對象等待函數(shù)指令。返回值:如果函數(shù)調(diào)用成功,返回值是互斥對象句柄;如果函數(shù)調(diào)用之前,有名互斥對象已存在,那么函數(shù)給已存在的對象返回一個(gè)句柄,并且函數(shù)GetLastError返回ERROR_ ALREADY_EXISTS。lpName:指向以NULL結(jié)尾的字符串,該字符串指定了互斥對象名。在Windows NT中該結(jié)構(gòu)的LpSecuriyDescriptor成員指定新互斥對象的安全描述符。若取值為INFINITE則造成無限延遲。線程的終止?fàn)顟B(tài)從STILL_ACTIVATE變?yōu)閐wExitCode參數(shù)的值。函數(shù)原型:VOID ExitThread (DWORD dwExitCo
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1