九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Windows核心編程(第五版)筆記 第九章 利用內(nèi)核對象同步線程(Thread Sync...

第九章 利用內(nèi)核對象同步線程

內(nèi)核對象可用于不同進程間線程的同步。

1.Wait系列函數(shù)

WaitForSingleObject

       掛起當前線程,直到該函數(shù)返回。(被等待的對象處于Signal狀態(tài)或等待超時)

       若有多個線程調(diào)用該函數(shù)等待同一個內(nèi)核對象,那么當這個內(nèi)核對象處于Signal狀態(tài)時只有一個線程會被喚醒。

       若線程中有創(chuàng)建Windows的代碼,需要用MsgWaitForMultipleObjects代替WaitForSingleObject,否則會產(chǎn)生死鎖。

 

WaitForMultipleObjects

若需要同時等待多個內(nèi)核對象,則可以調(diào)用該函數(shù)

 

2.事件內(nèi)核對象

 

自動事件

當事件處于Signal狀態(tài)時,只有一個等待該事件的線程會被喚醒。            之后事件會被自動回到Non Signal狀態(tài)。

手動事件

當事件處于Signal狀態(tài)時,所有等待該事件的線程都會被喚醒。                之后需要調(diào)用ResetEventEvent對象調(diào)回到Non Signal狀態(tài)。

3.信號量對象

信號量可以控制可以運行的線程的數(shù)量。

在創(chuàng)建信號量對象時要用一個初值來初始化lMaximumCount(允許運行線程數(shù)目的最大值),并把lInitialCount的值賦給CurrentSource

信號量內(nèi)部用CurrentSource來記錄當前可運行線程的數(shù)量,。

                    CurrentSource大于0時,信號量處于Signal狀態(tài)。

                    CurrentSource=0時,信號量處于Non Signal狀態(tài)。

 

WaitForSingleObject會使CurrentSource減1, ReleaseSemaphore會使CurrentSource+1.

 

4.互斥鎖

WAIT_ABANDONED

Windows中使用互斥鎖可以有效的避免死鎖。

當持有Mutex的線程在調(diào)用ReleaseMutex前意外退出,如ExitThreadTerminateThread。系統(tǒng)會把Mutex分給等待Mutex的線程中的一個并返回Wait_Abandoned,從而避免了死鎖。

 

5.       其它同步方法

Asynchronous Device I/O

WaitForInputIdle

MsgWaitForMultipleObjects(Ex)

WaitForDebugEvent

SignalObjectAndWait

Detecting Deadlocks with the Wait Chain Traversal API

 

6.Common API:

  WaitForSingleObject  WaitForMultipleObjects

  MsgWaitForMultipleObjects

  CreateEvent CreateEventEx SetEvent ResetEvent OpenEvent

  CreateSemaphore OpenSemaphore

  CreateMutex OpenMutex ReleaseMutex

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
線程、線程句柄、線程ID
WaitForSingleObjet
WaitForSingleObject函數(shù)的使用
C語言實現(xiàn)簡易聊天室
Visual C++線程同步技術剖析
多線程中的 WaitForSingleObject 與 EnterCriticalSection 性能比較
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服