Namespaces
Variants

std::shared_lock<Mutex>:: try_lock_for

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 Rep, class Period >
bool try_lock_for ( const std:: chrono :: duration < Rep,Period > & timeout_duration ) ;
(C++14 이후)

관련된 뮤텍스를 공유 모드로 잠그려고 시도합니다. 지정된 timeout_duration 이 경과하거나 잠금이 획득될 때까지(둘 중 먼저 오는 경우) 차단합니다. 잠금 획득에 성공하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다. 효과적으로 mutex ( ) - > try_lock_shared_for ( timeout_duration ) 를 호출합니다.

이 함수는 스케줄링 또는 자원 경합 지연으로 인해 timeout_duration 보다 더 오랫동안 블록될 수 있습니다.

표준은 지속 시간을 측정하는 데 스테디 클록을 사용할 것을 권장합니다. 구현체가 대신 시스템 클록을 사용하는 경우, 대기 시간은 클록 조정에 영향을 받을 수도 있습니다.

std::system_error 는 연결된 뮤텍스가 없거나 뮤텍스가 이미 잠겨 있는 경우 발생합니다.

Mutex SharedTimedLockable 요구사항을 충족하지 않을 경우 동작은 정의되지 않습니다.

목차

매개변수

timeout_duration - 최대 대기 시간

반환값

true 뮤텍스의 소유권을 성공적으로 획득한 경우, false 그렇지 않은 경우.

예외

  • mutex ( ) - > try_lock_shared_for ( timeout_duration ) 에 의해 발생하는 모든 예외.

예제

참고 항목

연결된 TimedLockable 뮤텍스를 잠그려 시도(즉, 소유권을 획득)하며, 지정된 시간 동안 뮤텍스를 사용할 수 없는 경우 반환됨
( std::unique_lock<Mutex> 의 public 멤버 함수)
연결된 뮤텍스를 잠금
(public 멤버 함수)
연결된 뮤텍스를 잠그려 시도
(public 멤버 함수)
지정된 시간점까지 연결된 뮤텍스를 잠그려 시도
(public 멤버 함수)
연결된 뮤텍스를 잠금 해제
(public 멤버 함수)