共用方式為


mutex class (C++標準連結庫)

代表 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,則行為未定義。

另請參閱

標頭檔參考
<mutex>