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

正文內(nèi)容

多線程并行編程模型-展示頁

2025-05-26 23:22本頁面
  

【正文】 和應(yīng)用程序使用和管理各種系統(tǒng)資源。 } main() { HANDLE hThread = CreateThread(NULL, 0, helloFunc, NULL, 0, NULL)。2021年 6月 17日 多核編程 大連東軟信息學(xué)院 多核課程組 2021年 6月 17日 課程目錄 第 1單元 并行化程序設(shè)計(jì)基礎(chǔ) 第 2單元 多線程并行編程模型 第 3單元 并行化程序性能調(diào)優(yōu) 2021年 6月 17日 第 2單元主要內(nèi)容 ? Windows API 多線程編程 ? OpenMP 多線程編程 2021年 6月 17日 第 4次課程主要內(nèi)容 ? Windows API 多線程編程 2021年 6月 17日 ? 創(chuàng)建,終止線程的方法 ? 利用同步對象協(xié)調(diào)線程的運(yùn)行和內(nèi)存訪問 ?資源互斥 ?數(shù)據(jù)共享 目標(biāo) 2021年 6月 17日 引例 ?輸出 ? Hello Thread 2021年 6月 17日 DWORD WINAPI helloFunc(LPVOID arg) { printf (“Hello Thread \n”)。 return 0。 WaitForSingleObject(hThread, INFINITE)。 ?線程對象、事件對象、文件對象、文件映射對象、作業(yè)對象、互斥量、管道對象、進(jìn)程對象、信標(biāo)對象和等待計(jì)時(shí)器對象等。 ━ 例如 CreateThread() 內(nèi)核對象 2021年 6月 17日 HANDLE CreateThread ( LPSECURITY_ATTRIBUTES lpThreadAttributes, //在系統(tǒng)中使用方法進(jìn)程高級設(shè)置 DWORD dwStackSize, //線程堆棧大小 LPTHREAD_START_ROUTINE lpStartAddress, //函數(shù)指針,指向?qū)嶋H運(yùn)行的代碼 LPVOID lpParameter, //參數(shù)指針 DWORD dwCreationFlags, //設(shè)置標(biāo)志 LPDWORD lpThreadId)。 創(chuàng)建線程 2021年 6月 17日 BOOL CloseHandle (HANDLE hObject)。 return 0。 } What Happens? 主線程執(zhí)行太快,子線程沒有執(zhí)行 例子:線程的創(chuàng)建 2021年 6月 17日 include include BOOL threadDone = FALSE 。 threadDone = TRUE 。 } main() { HANDLE hThread = CreateThread(NULL, 0, helloFunc, NULL, 0, NULL )。 // wasted cycles ! } Not a good idea! 線程的等待 2021年 6月 17日 ?原型: ?等待一個(gè)線程 DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds)。 Wait for all: fWaitAll==TRUE Wait for any: fWaitAll==FALSE 多個(gè)線程的等待 2021年 6月 17日 const int numThreads = 4。 return 0。 for (int i = 0。 i++) hThread[i] = CreateThread(NULL, 0, helloFunc, NULL, 0, NULL )。 int myNum = *p。 } . . . // from main(): for (int i = 0。 i++) { hThread[i] = CreateThread(NULL, 0, threadFunc, amp。 } 輸出的結(jié)果是什么? 問題解決?? 2021年 6月 17日 下面的表將說明出現(xiàn)問題的原因 myNum = *p myNum = 2 exit wait T6 p = pArg print(2) wait T5 launch myNum = *p myNum = 2 i++ (i == 2) T4 p = pArg create(amp。i) T1 i = 0 T0 Thread 1 Thread () Main Time 分析 2021年 6月 17日 在多線程應(yīng)用將遇到的問題 多線程問題 Deadlocks 死鎖 Livelocks 活鎖 Granularity 粒度 Load Imbalance 負(fù)載平衡 Data Races 數(shù)據(jù)競爭 多線程問題 — 數(shù)據(jù)競爭 2021年 6月 17日 數(shù)據(jù)競爭 Read/Write 競爭 Write/Write 競爭 多線程問題 — 數(shù)據(jù)競爭 2021年 6月 17日 如何解決數(shù)據(jù)競爭 ?在多線程應(yīng)用中避免數(shù)據(jù)競爭的兩種方法 ?將變量的應(yīng)用范圍具體到每一個(gè)線程內(nèi)部 o 變量聲明在線程內(nèi) o 線程本地存儲 Thread
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1