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

正文內(nèi)容

化工大學(xué)windows多線程編程(留存版)

2025-01-28 10:52上一頁面

下一頁面
  

【正文】 程可以獲得事件對象的訪問權(quán) HANDLE OpenEvent( DWORD fdwAccess, BOOL fInherit, PCTSTR pszName )。i++) { EnterCriticalSection (cs)。 HANDLE ThreadHandle1 = CreateThread(NULL,0,ThreadFunc1,NULL,0,NULL)。 LONG InterlockedExchangePointer ()( PVOID* ppvTarget, PVOID pvValue)。 return 0。 VOID ExitThread(DWORD dwExitCode)。 Win32 API線程庫 1. 創(chuàng)建線程的基本問題 2. 創(chuàng)建線程的 API函數(shù) 3. 操作線程的 API 4. 一個簡單的 Windows多線程程序 1 創(chuàng)建線程的基本問題 ? 線程可以由進程中的任意線程創(chuàng)建,而進程的主線程在進程加載時自動創(chuàng)建。 ? 內(nèi)核對象是由操作系統(tǒng)內(nèi)核分配, 只能由內(nèi)核訪問的數(shù)據(jù)結(jié)構(gòu) ,用來管理各種系統(tǒng)資源。 內(nèi)核對象及句柄 ? 內(nèi)核對象由內(nèi)核擁有,各個進程可以共享內(nèi)核對象。 … … return (dwResult)。 ③ TerminateThread函數(shù) ④ 在進程終止運行時撤銷線程 ? ExitProcess 和 TerminateProcess函數(shù)可以終止線程,將會終止進程中的所有線程; ? ExitProcess只能強制執(zhí)行本進程的退出; ? TerminateProcess在一個進程中強制結(jié)束其他的進程; ? 進程所使用的資源被清除; ? C++對象撤銷函數(shù)沒有被調(diào)用。 Long g_x = 0。 LONG InterlockedCompareExchangePointer ()( PVOID* ppvDestination, PVOID pvExchange, PVOID pvComparand)。 WaitForMultipleObjects(2,hThread,TRUE,INFINITE)。 } return 0。 事件 事件 ? 事件的主要用途是標志事件的發(fā)生,并以此協(xié)調(diào)線程的執(zhí)行順序。 HANDLE hEvent = CreateEvent(NULL,FALSE,FALSE,ContinueCommand)。 DeleteCriticalSection (cs)。 fileThreadFunc1 Outputiendl。 CloseHandle(hMutex)。 } return 0。 BOOL SetThreadPriority(HANDLE hThread, int nPriority)。 進程與線程的優(yōu)先級 進程與線程的優(yōu)先級 ? 1631級是實時優(yōu)先級 ? 相同優(yōu)先級線程的運行不按照時間片輪轉(zhuǎn),而是先運行的線程就先控制 CPU,如果它不主動放棄控制,同級或低優(yōu)先級的線程就無法運行。i++) { WaitForSingleObject(hsem1,INFINITE)。 HANDLE ThreadHandle1 = CreateThread(NULL,0,ThreadFunc1,hMutex,0,NULL)。 DWORD WINAPI ThreadFunc1(PVOID param) { HANDLE *phMutex=(HANDLE *)param。 SetEvent(hEvent)。 Sleep(2023)。 HANDLE CreateEvent( PSECURITY_ATTRIBUTES psa, // 安全屬性 BOOL fManualReset, //重置方式 BOOL fInitialState, // 初始狀態(tài) PCTSTR pszName // 對象名稱 )。i=1000。 } int main() { (,ios::out)。 LONG InterlockedExchange ()( PLONG plTarget, LONG lValue)。 getchar()。 ? C++類對象將不被撤銷。 ? 關(guān)閉內(nèi)核對象 ? 無論進程怎樣創(chuàng)建內(nèi)核對象,在不使用該對象的時候都應(yīng)當(dāng)通過 Bool CloseHandle(HANDLE hobj)來向操作統(tǒng)聲明結(jié)束對該對象的訪問。 ? 出于安全的考慮,進程是不能直接訪問內(nèi)核對象的,操作系統(tǒng)提供了對應(yīng)的函數(shù)來對它們進行訪問。進程中止執(zhí)行,它使用的內(nèi)核對象并不一定會被撤銷。 } 2 創(chuàng)建線程的 API函數(shù) ? 創(chuàng)建線程:系統(tǒng)創(chuàng)建一個線程內(nèi)核對象。 VOID ExitProcess(UINT uExitCode)。 //全局變量 DWORD WINAPI ThreadFunc1 (PVOID pvParam) { g_x++。 臨界段 ? 互鎖函數(shù):以原子操作方式修改單個值 ? 臨界段:以原子方式修改復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。 ()。 } 使用內(nèi)核對象的線程間通信 ? 互鎖函數(shù)和臨界段都是在用戶態(tài)實現(xiàn)線程通信的,優(yōu)點速度快 ? 用戶態(tài)機制只能實現(xiàn)同一進程內(nèi)線程通信。 ? 例子:用戶在主線程輸入命令,控制新建線程的運行。 coutMain Thread: Creating new thread.endl。 CloseHandle(hEvent)。 ReleaseMutex(*phMutex)。 ()。 } DWORD WINAPI ThreadFunc2(PVOID param) { for(int i=1。 關(guān)于優(yōu)先級的操作 ? SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_IDLE)。 ? 優(yōu)先級相同的線程按照時間片輪流運行。i=100。 HANDLE hMutex = CreateMutex(NULL,FALSE,DisplayMutex)。 fstream file。 if(input==continue) { coutMain Thread: Let thr
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1