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

正文內(nèi)容

多線程并行編程模型-在線瀏覽

2025-07-17 23:22本頁(yè)面
  

【正文】 Local Storage (TLS) ?以臨界的方法控制并行訪問(wèn) —— 同步對(duì)象 o Critical section 臨界區(qū) o Mutex 互斥 o Semaphore 信號(hào)量 o Event 事件 2021年 6月 17日 DWORD WINAPI threadFunc(LPVOID pArg) { int myNum = *((int*)pArg)。 } . . . for (int i = 0。 i++) { tNum[i] = i。tNum[i], 0, NULL)。cs) // 初始化臨界區(qū) ━ DeleteCriticalSection(amp。 void WINAPI DeleteCriticalSection( LPCRITICAL_SECTION lpCriticalSection)。cs) // 進(jìn)入臨界區(qū) LeaveCriticalSection(amp。 當(dāng)臨界區(qū)沒(méi)有線程時(shí)將返回 void WINAPI EnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection )。 臨界區(qū) 2021年 6月 17日 define NUMTHREADS 4 CRITICAL_SECTION g_cs。 DWORD WINAPI threadFunc(LPVOID arg ) { int mySum = bigComputation()。g_cs)。 // 每次只有一個(gè)線程訪問(wèn) LeaveCriticalSection(amp。 return 0。 InitializeCriticalSection(amp。 for (int i = 0。 i++) hThread[i] = CreateThread(NULL,0,threadFunc,NULL,0,NULL)。 DeleteCriticalSection(amp。 } 指導(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)行同步訪問(wè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)。 BOOL ResetEvent( HANDLE event )。 // 0 is event, 1 is thread DWORD WINAPI threadFunc(LPVOID arg) { BOOL bFound = bigFind()。 // 滿足激發(fā)條件 bigFound()。 return 0。 hObj[1] = CreateThread(NULL,0,threadFunc,NULL,0,NULL)。 switch(waitRet) { case WAIT_OBJECT_0: printf (found it!\n)。 case WAIT_OBJECT_0+1 printf
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1