線程同步對象速查表

來源:互聯網
上載者:User
  

特徵

互斥量

關鍵段

效能

慢

塊

是否能跨進程使用

是

否

聲明

HANDLE hmtx;

CRITICAL_SECTION cs;

初始化

hmtx = CreateMutex (NULL, FALSE, NULL);

InitializeCriticalSection(&cs);

清理

CloseHandle(hmtx);

DeleteCriticalSection(&cs);

無限等待

WaitForSingleObject (hmtx, INFINITE);

EnterCriticalSection(&cs);

0等待

WaitForSingleObject (hmtx, 0);

TryEnterCriticalSection(&cs);

任意時間長度的等待

WaitForSingleObject (hmtx, dwMilliseconds);

不支援

釋放

ReleaseMutex(hmtx);

LeaveCriticalSection(&cs);

是否能同時等待其它

核心對象

是 (使用WaitForMultipleObjects 或類似函數)

否

                                         
表1:互斥量和關鍵段比較

 

對象

何時處於未觸發狀態

何時處於觸發狀態

成功等待的副作用

進程

當進程仍在啟動並執行時候

當進程終止運行時(ExitProcess,

Te rminateProcess)

無

線程

當線程仍在運行時

當線程終止運行時(ExitThread,

TerminateThread)

無

作業

當作業尚未逾時的時候

當作業逾時的時候

無

檔案

當I / O請求正在處理時

當I / O請求處理完畢時

無

控制台輸入

不存在任何輸入

當存在輸入時

無

檔案修改通知

沒有任何檔案被修改

當檔案系統發現修改時

重設通知

自動重設事件

ResetEvent , PulseEvent或等待成功

當調用SetEvent / PulseEvent時

重設事件

手動重設事件

ResetEvent或PulseEvent

當調用SetEvent / PulseEvent時

無

自動重設等待計時器

CancelWaitableTimer或等待成功

當時間到時(SetWaitableTimer)

重設定時器

手動重設等待計時器

CancelWaitableTimer

當時間到時(SetWaitableTimer)

無

訊號量

等待成功

當數量> 0時(ReleaseSemaphore)

數量遞減1

互斥對象

等待成功

當未被線程擁有時(Release互斥對象)

將所有權賦予線程

關鍵程式碼片段(使用者模式)

等待成功((Try)EnterCriticalSection)

當未被線程擁有時(LeaveCriticalSection)

將所有權賦予線程

SRWLock
(使用者模式)
等待成功的時候
(AcquireSRWLock(Exclusive))
不為線程佔用的時候
(ReleaseSRWLock(Exclusive))
把所有權交給線程
條件變數
(使用者模式)
等待成功地時候
(SleepConditionVariable*)
被喚醒的時候
(Wake(All)ConditionVariable)
沒有

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.