Namespaces
Variants

std:: condition_variable_any

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
condition_variable_any
(C++11)
(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
헤더 파일에 정의됨 <condition_variable>
class condition_variable_any ;
(C++11부터)

condition_variable_any 클래스는 std::condition_variable 의 일반화입니다. std::condition_variable std:: unique_lock < std:: mutex > 에서만 동작하는 반면, condition_variable_any BasicLockable 요구사항을 충족하는 모든 락에서 동작할 수 있습니다.

조건 변수의 의미론에 대한 설명은 std::condition_variable 를 참조하십시오.

클래스 std::condition_variable_any StandardLayoutType 입니다. 이 클래스는 CopyConstructible , MoveConstructible , CopyAssignable , 또는 MoveAssignable 이 아닙니다.

만약 락이 std:: unique_lock < std:: mutex > 인 경우, std::condition_variable 이 더 나은 성능을 제공할 수 있습니다.

목차

멤버 함수

객체를 생성함
(public member function)
객체를 소멸함
(public member function)
operator=
[deleted]
복사 할당 불가
(public member function)
Notification
대기 중인 하나의 스레드에 알림
(public member function)
대기 중인 모든 스레드에 알림
(public member function)
Waiting
조건 변수가 깨어날 때까지 현재 스레드를 차단함
(public member function)
조건 변수가 깨어나거나 지정된 시간 제한이 지날 때까지 현재 스레드를 차단함
(public member function)
조건 변수가 깨어나거나 지정된 시간 점에 도달할 때까지 현재 스레드를 차단함
(public member function)

참고 사항

std::condition_variable_any 는 공유 소유권 모드에서 std::shared_lock 과 함께 사용되어 std::shared_mutex 를 대기하는 데 사용될 수 있습니다.

std::condition_variable_any 의 가능한 사용 사례 중 하나는 사용자 정의 Lockable 타입과 함께 편리한 인터럽트 가능 대기를 제공하는 것입니다: 사용자 정의 잠금 연산은 관련된 뮤텍스를 예상대로 잠그는 동시에, 인터럽트 신호를 수신했을 때 이 조건 변수에 알리는 데 필요한 설정을 수행합니다. [1]

참고 항목

std::unique_lock 과 연관된 조건 변수를 제공합니다
(클래스)

외부 링크

  1. Anthony Williams (2012, 1판/ 2019, 2판), "C++ Concurrency in Action", 9.2.4 " std::condition_variable_any 대기 중단".