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

正文內(nèi)容

哲學家進餐問題word版-展示頁

2025-01-18 18:43本頁面
  

【正文】 riticalSection(fork + k)。//放下左邊的筷子 //outline(k, give right)。//放下右邊的筷子 //outline(k, give left)。 Sleep((rand()%1000) *5)。 Sleep((rand()%1000) *5)。 return n。 eating(n)。 while(true) { thinking(n)。 outline(n, is in!)。 } } return 0。i++) { if(CloseHandle(hthread[i]) == false)//關(guān)閉句柄 { cerr error while close thread iendl。 } for(i = 0。 } } //等待所有線程結(jié) 束 retval = WaitForMultipleObjects(5,hthread,true,INFINITE)。 if((int)hthread[i] == 1)//如果線程創(chuàng)建失敗返回 1 { cerr error while create thread i endl。i++) { arg[i] = i。 } //創(chuàng)建五個哲學家 for(i = 0。i5。crout)。 unsigned long retval。 int arg[5]。 int i。//這個變量用來保證輸出時不會競爭 CRITICAL_SECTION fork[5]。 void outline(int ,const char *)。 void eating(int)。 unsigned int __stdcall philosopher(void *)。為了吃飯,哲學家必須拿起兩雙筷子(分 別放于左右兩端)不幸的是,筷子的數(shù)量和哲學家相等,所以每 只筷子必須由兩位哲學家共享 下面是一種有問題的解法,因為在某個時刻,五個哲學家同時拿起五根左手邊的筷子, 則它們會在同一時候?qū)Υ沂诌叺目曜?,這樣會陷入死鎖, 但是我測試了,這樣的幾 率并不高經(jīng)過幾個小時,還沒有出現(xiàn)。哲學家進餐問題 2022/05/16 12:36 . /******************** 哲學家進餐問題 在多線程中如何避免死鎖。 問題描述:有五位哲學家圍繞著餐桌坐,每一位哲學家要么思考 要么等待,要么吃飯。但是我們可以肯定,理論上是肯定會出現(xiàn)死鎖的, 我們不能老是靠運氣辦事,怎么解決這個問題呢 留給下一步的學習吧 要編譯此文件請用多線程版的 c++庫 ********************/ include include iostream include include cstdlib include ctime using namespace std。 void thinking(int)。 void wait_to_eat(int)。 //全局變量 CRITICAL_SECTION crout。//定義五個臨界變量,代表五更筷子 int main(int argc,char *argv[]) { void * hthread[5]。 unsigned int threadid[5]。 int count = 5。 InitializeCriticalSection(amp。 //初始化臨界變量 for(i=0。i++) { InitializeCriticalSection(fork + i)。 i5。 hthread[i] = (void *)_beginthreadex(NULL,0,philosopher,(void *)(arg + i),0,threadid+i)。 cerr error code : GetLastError() endl。//等待多個線程 if(retval == WAIT_FAILED) { cerr wait error,error code: GetLastError()endl。 i
點擊復制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1