xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 2.58MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-08-14
  • 語言: 其他
  • 標簽: 算法實現(xiàn)??

資源簡介

進程同步實驗——生產(chǎn)者與消費者問題算法實現(xiàn)

資源截圖

代碼片段和文件信息

??/*————————————————————————————————
??在同一個進程地址空間內執(zhí)行的兩個線程。生產(chǎn)者線程生產(chǎn)物品,
??然后將物品放置在一個空緩沖區(qū)中供消費者線程消費。消費者線
??程從緩沖區(qū)中獲得物品,然后釋放緩沖區(qū)。當生產(chǎn)者線程生產(chǎn)物
??品時,如果沒有空緩沖區(qū)可用,那么生產(chǎn)者線程必須等待消費者
??線程釋放出一個空緩沖區(qū)。當消費者線程消費物品時,如果沒有
??滿的緩沖區(qū),那么消費者線程將被阻塞,直到新的物品被生產(chǎn)出
??來。
——————————————————————————————————*/
??#include???
??#include
??#include???
????
??const???unsigned???short???SIZE_OF_BUFFER???=???10;???//緩沖區(qū)長度???
??unsigned???short???ProductID???=???0;?????????//產(chǎn)品號???
??unsigned???short???ConsumeID???=???0;?????????//將被消耗的產(chǎn)品號???
??unsigned???short???in???=???0;?????????????//產(chǎn)品進緩沖區(qū)時的緩沖區(qū)下標???
??unsigned???short???out???=???0;?????????????//產(chǎn)品出緩沖區(qū)時的緩沖區(qū)下標???
????
??int???g_buffer[SIZE_OF_BUFFER];?????????//緩沖區(qū)是個循環(huán)隊列???
??bool???g_continue???=???true;?????????????//使程序跳出循環(huán),控制程序結束???
??HANDLE???g_hMutex;???????????????//用于線程間的互斥???
??HANDLE???g_hFullSemaphore;???????????//當緩沖區(qū)滿時迫使生產(chǎn)者等待???
??HANDLE???g_hEmptySemaphore;???????????//當緩沖區(qū)空時迫使消費者等待???
????
??DWORD???WINAPI???Producer(LPVOID);?????????//生產(chǎn)者線程???
??DWORD???WINAPI???Consumer(LPVOID);?????????//消費者線程???
????
??int???main()???
??{???
??????????//創(chuàng)建各個互斥信號???
??????????g_hMutex???=???CreateMutex(NULLFALSENULL);??//?三個參數(shù)分別為:指向安全屬性的指針?
//初始化互斥對象的所有者指向互斥對象名的指針
??????????//創(chuàng)建緩沖區(qū)滿的信號量
??????????g_hFullSemaphore???=???CreateSemaphore(NULLSIZE_OF_BUFFER-1SIZE_OF_BUFFER-1NULL);?
//四個參數(shù)分別為:表示是否允許繼承、
//設置信號機的初始計數(shù)、設置信號機的
?? //最大計數(shù)、指定信號機對象的名稱(-1是因為計數(shù)從0開始)
??????????//創(chuàng)建緩沖區(qū)空的信號量
??g_hEmptySemaphore???=???CreateSemaphore(NULL0SIZE_OF_BUFFER-1NULL);???
????
??????????//調整下面的數(shù)值,可以發(fā)現(xiàn),當生產(chǎn)者個數(shù)多于消費者個數(shù)時,???
??????????//生產(chǎn)速度快,生產(chǎn)者經(jīng)常等待消費者;反之,消費者經(jīng)常等待?????
??????????const???unsigned???short???PRODUCERS_COUNT???=???3;?????//生產(chǎn)者的個數(shù)???
??????????const???unsigned???short???CONSUMERS_COUNT???=???3;?????//消費者的個數(shù)???
????
??????????//總的線程數(shù)???
??????????const???unsigned???short???THREADS_COUNT???=???PRODUCERS_COUNT+CONSUMERS_COUNT;???
????
??????????HANDLE???hThreads[PRODUCERS_COUNT];???//各線程的handle???
??????????DWORD???producerID[CONSUMERS_COUNT];???//生產(chǎn)者線程的標識符???
??????????DWORD???consumerID[THREADS_COUNT];???//消費者線程的標識符???
????
??????????//為每一個生產(chǎn)者創(chuàng)建生產(chǎn)者線程???
??????????for(int?i=0;i??????????????????hThreads[i]=CreateThread(NULL0ProducerNULL0&producerID[i]);???
??????????????????if???(hThreads[i]==NULL)???return???-1;???
??????????}???
??????????//為每一個消費者創(chuàng)建消費者線程???
??????????for(int?j=0;j??????????????????hThreads[PRODUCERS_COUNT+j]=CreateThread(NULL0ConsumerNULL0&consumerID[j]);???
??????????????????if???(hThreads[j]==NULL)???return???-1;???
??????????}???
????
??????????while(g_continue){???
??????????????????if(getchar()){???//按回車后終止程序運行???
??????????????????????????g_continue???=???false;???
??????????????????}???
??????????}???
????
??????????return???0;???
??}???
????
??//生產(chǎn)一個產(chǎn)品。簡單模擬了一下,僅輸出新產(chǎn)品的ID號???
??void???Produce()???
??{???
??????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????184436??2009-01-04?20:40??Debug\sx3.exe

?????文件?????229928??2009-01-04?20:40??Debug\sx3.ilk

?????文件??????25242??2009-01-04?20:40??Debug\sx3.obj

?????文件????3616828??2009-01-04?20:40??Debug\sx3.pch

?????文件?????394240??2009-01-04?20:40??Debug\sx3.pdb

?????文件?????148480??2009-01-04?20:40??Debug\vc60.idb

?????文件??????86016??2009-01-04?20:40??Debug\vc60.pdb

?????文件?????208955??2007-12-31?21:33??sx3(1消費者,3個生產(chǎn)者).exe

?????文件?????208954??2008-01-03?20:43??sx3(3個生產(chǎn)者,4個消費者,15個緩沖區(qū)).exe

?????文件?????208955??2007-12-31?21:37??sx3(3個消費者,1個生產(chǎn)者).exe

?????文件?????208955??2007-12-31?21:38??sx3(3個消費者,3個生產(chǎn)者).exe

?????文件???????6847??2007-12-31?22:00??sx3.cpp

?????文件???????3365??2009-01-04?20:40??sx3.dsp

?????文件????????531??2009-01-04?20:41??sx3.dsw

?????文件??????33792??2009-01-04?20:41??sx3.ncb

?????文件??????48640??2009-01-04?20:41??sx3.opt

?????文件????????731??2009-01-04?20:40??sx3.plg

?????文件????1412608??2009-01-03?21:11??操作系統(tǒng)原理實驗報告.doc

?????目錄??????????0??2009-01-04?20:40??Debug

-----------?---------??----------?-----??----

??????????????7027503????????????????????19


評論

共有 條評論