Namespaces
Variants

std::shared_timed_mutex:: lock_shared

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
void lock_shared ( ) ;
(C++14以降)

ミューテックスの共有所有権を取得します。他のスレッドが排他所有権でミューテックスを保持している場合、 lock_shared の呼び出しは、共有所有権が取得できるまで実行をブロックします。

もし lock_shared が、既に何らかのモード(排他または共有)で mutex を所有しているスレッドによって呼び出された場合、動作は未定義です。

実装定義された最大数を超える共有所有者がすでにミューテックスを共有モードでロックしている場合、 lock_shared は共有所有者の数が減少するまで実行をブロックします。所有者の最大数は少なくとも10000であることが保証されています。

同じミューテックスに対する前回の unlock() 操作は、この操作と synchronizes-with std::memory_order で定義されている通り)関係にあります。

目次

パラメータ

(なし)

戻り値

(なし)

例外

エラーが発生した場合、 std::system_error をスローします。これには、 lock がその仕様を満たすのを妨げる基盤オペレーティングシステムからのエラーも含まれます。例外がスローされた場合、ミューテックスはロックされません。

注記

lock_shared() は通常直接呼び出されません: std::shared_lock が共有ロックの管理に使用されます。

関連項目

ミューテックスをロックする。ミューテックスが利用できない場合はブロックする
(公開メンバ関数)
ミューテックスの共有所有権を取得しようと試みる。ミューテックスが利用できない場合は即座に返る
(公開メンバ関数)
ミューテックスをアンロックする(共有所有権)
(公開メンバ関数)