C 多執行緒的用法6 執行緒間的協作Mutex

2022-04-04 11:27:36 字數 787 閱讀 8752

/// /// 多執行緒協作-mutex

///

private static void multithreadsynergicwithmutex()

mutex.releasemutex();

});thread thread2 = new thread(() =>

mutex.releasemutex();

});thread1.start();

thread2.start();

mutex.releasemutex();

}

說明:

1、initiallyowned表示建立mutex的執行緒是否擁有該互斥體。true表示建立執行緒擁有互斥鎖,只有在建立執行緒中呼叫releasemutex釋放後,其他等待執行緒才能參與搶奪互斥體的活動。false表示互斥鎖體於與空閒狀態,其他等待互斥鎖的執行緒立即參與到搶奪互斥鎖的活動中去。

2、在上面程式中建立mutex時使用true引數,故在啟動其他執行緒後必須執行mutex.releasemutex(),如果不釋放mutex,則其他執行緒將一直等待下去。

3、mutex.waitone()與mutex.releasemutex()要像 一樣配對使用,否則將出現 "由於出現被放棄的 mutex,等待過程結束" 的異常

4、mutex與monitor相比,沒有暫時釋放的功能;因此mutex一經釋放,原釋放資源的執行緒也將重新參與新一輪對mutex的爭奪過程。

5、mutex除了可用於執行緒同步外還可用於程序間同步,這些知識有待你去發掘........

C 多執行緒的用法5 執行緒間的協作Monitor

之前我們使用lock快捷方式,實現了多執行緒對同一資源的共享。在c 中lock實際上是monitor操作的簡化版本。下面使用monitor來完成之前的lock功能,你可以在此做一下對照 private static void multithreadsynergicwithmonitor work c...

C 多執行緒的用法3 執行緒間的協作Join

在建立多執行緒應用程式時,如何確保執行緒間的協作往往比讓執行緒工作更重要。執行緒間的協作最簡單的方式是採用join來進行,如下 多執行緒協作 join方式 解決執行緒間同步工作問題 private static void multithreadsynergicwithjoin start work ...

C 多執行緒的用法4 執行緒間的協作lock快捷方式

執行緒間協作還可通過lock 加鎖 方式進行,lock屬於c 的monitor語法糖 monitor後續講解 使用簡單快捷,如下 多執行緒協作 lock快捷方式 成功解決多執行緒對單一資源的共享 private static void multithreadsynergicwithlock work...