Namespaces
Variants

std::shared_timed_mutex:: try_lock_shared_until

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
template < class Clock, class Duration >
bool try_lock_shared_until ( const std:: chrono :: time_point < Clock,Duration > & timeout_time ) ;
(C++14 이후)

뮤텍스를 공유 모드로 잠그려 시도합니다. 지정된 timeout_time 에 도달하거나 잠금이 획득될 때까지(둘 중 먼저 오는 경우) 차단됩니다. 잠금 획득에 성공하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

만약 timeout_time 이 이미 지난 경우, 이 함수는 try_lock_shared() 처럼 동작합니다.

Clock Clock 요구사항을 충족해야 합니다. std:: chrono :: is_clock_v < Clock > false 인 경우 프로그램의 형식이 올바르지 않습니다. (C++20부터)

표준은 timeout_time 에 연결된 클럭을 사용할 것을 권장하며, 이 경우 클럭의 조정이 고려될 수 있습니다. 따라서 블록의 지속 시간은 호출 시점의 timeout_time - Clock :: now ( ) 보다 길거나 짧을 수 있으며, 이는 조정 방향과 구현에서 이를 준수하는지 여부에 따라 달라집니다. 또한 이 함수는 프로세스 스케줄링이나 자원 경합 지연으로 인해 timeout_time 이 경과한 이후까지 블록 상태를 유지할 수 있습니다.

try_lock_shared() 와 마찬가지로, 이 함수는 허위 실패(spuriously fail)가 허용되며 false 를 반환할 수 있습니다. 이는 timeout_time 이전 시점에 뮤텍스가 다른 스레드에 의해 잠겨 있지 않은 경우에도 발생할 수 있습니다.

동일한 뮤텍스에 대한 이전 unlock() 연산은 이 연산이 true 를 반환할 경우 synchronizes-with (다음과 같이 정의됨: std::memory_order ) 이 연산과.

만약 try_lock_shared_until 이 이미 mutex 를 어떤 모드(공유 또는 배타적)로든 소유하고 있는 스레드에 의해 호출되면, 동작은 정의되지 않습니다.

목차

매개변수

timeout_time - 블록이 최대한 지속될 시간 지점

반환값

true 공유 잠금 소유권을 성공적으로 획득한 경우, 그렇지 않으면 false 입니다.

예외

clock, time_point 또는 duration이 실행 중에 던지는 모든 예외 (표준 라이브러리에서 제공하는 clocks, time points, durations은 절대 예외를 던지지 않음).

예제

참고 항목

뮤텍스를 잠그려 시도하며, 지정된 시간 포인트에 도달할 때까지
뮤텍스를 사용할 수 없는 경우 반환합니다
(public member function)
공유 소유권을 위해 뮤텍스를 잠그려 시도하며, 뮤텍스를 사용할 수 없는 경우 반환합니다
(public member function)
공유 소유권을 위해 뮤텍스를 잠그려 시도하며, 지정된 타임아웃 지속 시간 동안
뮤텍스를 사용할 수 없는 경우 반환합니다
(public member function)