核心物件 互斥體

2021-09-10 14:58:56 字數 873 閱讀 9316

使用核心物件互斥體可以實現跨程序的執行緒控制,原因就是因為互斥體是在核心裡面建立的,所有程序都可以訪問到

handle createmutex( 

lpsecurity_attributes lpmutexattributes,

bool binitialowner,

lpctstr lpname

);

使用createmutex建立乙個互斥體物件

lpmutexattributes

安全屬性,必須為0

binitialowner

初始化擁有者,如果該值為真,並且呼叫者建立了互斥物件,那麼呼叫該函式的執行緒將獲得互斥物件的所有權。否則,呼叫執行緒不會獲得互斥鎖的所有權。

返回值如果要建立的互斥體物件名不存在,則返回新建立的互斥體物件的控制代碼。

如果建立的互斥體物件名存在,則返回已存在的互斥體物件的控制代碼。

lpname

為建立的互斥體物件取乙個名字。

releasemutex()

引數為建立或開啟的控制代碼。

釋放互斥體物件的所有權後,再次呼叫createmutex又可以獲得互斥體物件的所有權

新建乙個win32控制台程式,使用互斥體物件防止軟體多開。

原理是呼叫createmutex函式建立互斥體物件時,如果物件存在的話,getlasterror返回的值是error_already_exists。

#include "stdafx.h"

#include int _tmain(int argc, _tchar* ar**)

getchar();

return 0;

}

什麼互斥體

互斥體實現了 互相排斥 mutual exclusion 同步的簡單形式 所以名為互斥體 mutex 互斥體禁止多個執行緒同時進入受保護的 臨界區 critical section 因此,在任意時刻,只有乙個執行緒被允許進入這樣的 保護區。任何執行緒在進入臨界區之前,必須獲取 acquire 與此區...

核心概述與互斥

核心概述linux核心提供了應用程式可以執行的執行環境。因此,核心必須提供一組服務及相應的介面。核心可以說是有乙個個驅動模組和一些公用模組組成的。核心響應使用者空間的請求,驅動硬體 提供相應的服務。更進一步可以說核心是由一系列函式和一些全域性資料結構組成。系統的執行系統的執行是以乙個個程序的方式進行...

互斥體CMutex的使用

分類 2.4 執行緒 圖形學 2010 07 29 14 31 4512人閱讀收藏 舉報 attributes mfcsecurity null thread windows 互斥體是cmutex類的物件,也只允許乙個執行緒占有某個共享資源,以保護獨佔式共享資源。因此,互斥體的使用方法與臨界段的使用...