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

正文內(nèi)容

多線程并行編程模型(編輯修改稿)

2025-06-19 23:22 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 LeaveCriticalSection(amp。cs) // 退出臨界區(qū) 當(dāng)臨界區(qū)有其他線程時(shí),線程將被阻塞不返回。 當(dāng)臨界區(qū)沒有線程時(shí)將返回 void WINAPI EnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection )。 void WINAPI LeaveCriticalSection( LPCRITICAL_SECTION lpCriticalSection )。 臨界區(qū) 2021年 6月 17日 define NUMTHREADS 4 CRITICAL_SECTION g_cs。 // 為什么定義成全局變量 int g_sum = 0。 DWORD WINAPI threadFunc(LPVOID arg ) { int mySum = bigComputation()。 EnterCriticalSection(amp。g_cs)。 g_sum += mySum。 // 每次只有一個(gè)線程訪問 LeaveCriticalSection(amp。g_cs)。 return 0。 } main() { HANDLE hThread[NUMTHREADS]。 InitializeCriticalSection(amp。g_cs)。 for (int i = 0。 i NUMTHREADS。 i++) hThread[i] = CreateThread(NULL,0,threadFunc,NULL,0,NULL)。 WaitForMultipleObjects(NUMTHREADS, hThread, TRUE, INFINITE)。 DeleteCriticalSection(amp。g_cs)。 } 指導(dǎo)案例:臨界區(qū) 2021年 6月 17日 編程實(shí)現(xiàn) ?1 2 3 …… 1000000 = ? 2021年 6月 17日 特點(diǎn) 內(nèi)核對(duì)象 被一個(gè)線程擁有 進(jìn)程、線程間的同步 跨進(jìn)程進(jìn)行同步訪問。為獲得一個(gè)信號(hào)量要進(jìn)行內(nèi)核調(diào)用,開銷大 相關(guān)接口 : CreateMutex() // 創(chuàng)建互斥量 WaitForSingleObject() // 等待、加鎖 ReleaseMutex() // 解鎖 互斥量 2021年 6月 17日 實(shí)驗(yàn)項(xiàng)目2 ?完成 Windows*Threads多線程編程實(shí)驗(yàn),項(xiàng)目二:臨界區(qū)實(shí)驗(yàn)。 2021年 6月 17日 ?事件多用于下列情況 : 通知計(jì)算完成 通知數(shù)據(jù)可用 通知消息就緒 ?等待事件的接口 : WaitForSingleObject() //一個(gè)事件 WaitForMultipleObjects() //多個(gè)事件 ?事件的兩種類型 : Autoreset events //自動(dòng)重置事件 Manualreset events //人工重置事件 事件 2021年 6月 17日 Autoreset Events Manualreset Events Event stays signaled until one waiting thread is released Event stays signaled until explicitly reset to nonsignaled by an API call If no thread is waiting, state remains signaled If all waiting threads are released, state remains signaled After the thread is released, state is reset to nonsignaled Threads not originally waiting may start wait and be released 警告 : 慎用 WaitForMultipleObjects() 等待所有的事件 事件的兩種類型 2021年 6月 17日 ? bManualReset TRUE: 人工重置事件 FALSE: 自動(dòng)重置事件 ? bInitialState TRUE: 激發(fā)態(tài) FALSE: 未激發(fā)態(tài) HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, // 確定重置方式 BOOL bInitialState, // 確定事件的初始狀態(tài) LPCSTR lpName)。 // 事件名稱 事件的創(chuàng)建 2021年 6月 17日 SetEvent() ResetEvent() BOOL SetEvent( HANDLE event )。 BOOL ResetEvent( HANDLE event )。 事件的設(shè)置和重置 2021年 6月 17日 HANDLE hObj [2]。 // 0 is event, 1 is thread DWORD WINAPI threadFunc(LPVOID arg
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1