代表 mutex 類型。 這個類型的物件可以用來強制程式內的互斥。
語法
class mutex;
成員
公用建構函式/解構函式
名稱 | 描述 |
---|---|
mutex |
建構 mutex 物件。 |
~mutex |
釋放 mutex 物件使用的所有資源。 |
公用方法
名稱 | 描述 |
---|---|
lock |
封鎖呼叫的執行緒,直到執行緒取得 mutex 的擁有權。 |
native_handle |
傳回表示 mutex 控制代碼的實作特定類型。 |
try_lock |
嘗試在不造成封鎖的情況下,取得 mutex 的擁有權。 |
unlock |
釋放 mutex 的擁有權。 |
需求
標頭: <mutex>
命名空間:std
lock
封鎖呼叫的執行緒,直到執行緒取得 mutex
的擁有權。
void lock();
備註
如果呼叫的執行緒已經擁有 mutex
,則行為是未定義的。
建構函式
mutex
建構未鎖定的物件。
在 Visual Studio 2022 17.10 之前,Microsoft這個建構函式的實作不是 constexpr
。 現在是 constexpr
。
mutex() noexcept;
解構函式
釋出 mutex
物件所使用的任何資源。
~mutex();
備註
如果執行解構函式時物件已鎖定,則行為是未定義的。
native_handle
傳回表示 mutex 控制代碼的實作特定類型。 您可以利用實作特定的方式來使用 mutex 控制代碼。
native_handle_type native_handle();
傳回值
native_handle_type
定義為 Concurrency::critical_section *
。 它會轉換成 void *
。
try_lock
嘗試在不造成封鎖的情況下,取得 mutex
的擁有權。
bool try_lock();
傳回值
如果方法成功取得 true
的擁有權,就是 mutex
,否則為 false
。
備註
如果呼叫的執行緒已經擁有 mutex
,則行為是未定義的。
unlock
釋放 mutex
的擁有權。
void unlock();
備註
如果呼叫線程沒有 擁有 mutex
,則行為未定義。