Extensions for concurrency
From cppreference.net
<
cpp
|
experimental
C++ 확장 기능 동시성(ISO/IEC TS 19571:2016)은 C++ 표준 라이브러리를 위한 다음과 같은 새로운 구성 요소들을 정의합니다:
목차 |
std::future에 대한 연속 작업 및 기타 확장
|
헤더에 정의됨
<experimental/future>
|
|
|
(concurrency TS)
|
연속성(continuations) 및 기타 기능이 향상된
std::future
의 버전
(클래스 템플릿) |
|
(concurrency TS)
|
연속성(continuations) 및 기타 기능이 향상된
std::shared_future
의 버전
(클래스 템플릿) |
|
(concurrency TS)
|
std::experimental::future
를 사용하도록 수정된
std::promise
의 버전
(클래스 템플릿) |
|
(concurrency TS)
|
std::experimental::future
를 사용하도록 수정된
std::packaged_task
의 버전
(클래스 템플릿) |
|
(concurrency TS)
|
주어진 모든 future나
shared_futures
가 준비 상태가 되었을 때 준비되는 future를 생성함
(함수 템플릿) |
|
(concurrency TS)
|
주어진 future나 shared_futures 중 적어도 하나가 준비 상태가 되었을 때 준비되는 future를 생성함
(함수 템플릿) |
|
(concurrency TS)
|
즉시 준비 상태가 되며 주어진 값을 보유하는 future를 생성함
(함수 템플릿) |
|
(concurrency TS)
|
즉시 준비 상태가 되며 주어진 예외를 보유하는 future를 생성함
(함수 템플릿) |
기능 테스트 매크로
|
헤더 파일에 정의됨
<experimental/future>
|
|
|
__cpp_lib_experimental_future_continuations
|
최소
201505
값을 가지며 future::then 및 다른 확장 기능들이 지원됨을 나타냄
(매크로 상수) |
|
헤더 파일에 정의됨
<experimental/latch>
|
|
|
__cpp_lib_experimental_latch
|
최소
201505
값을 가지며 latch 타입이 지원됨을 나타냄
(매크로 상수) |
|
헤더 파일에 정의됨
<experimental/barrier>
|
|
|
__cpp_lib_experimental_barrier
|
최소
201505
값을 가지며 barrier 타입이 지원됨을 나타냄
(매크로 상수) |
|
헤더 파일에 정의됨
<experimental/atomic>
|
|
|
__cpp_lib_experimental_atomic_smart_pointers
|
최소
201505
값을 가지며 atomic 스마트 포인터들이 지원됨을 나타냄
(매크로 상수) |
C++20에 통합됨
Concurrency TS의 다음 구성 요소들이 C++20 표준에 채택되었습니다.
래치와 배리어
|
헤더에 정의됨
<experimental/latch>
|
|
|
(concurrency TS)
|
단일 사용 스레드 배리어
(클래스) |
|
헤더에 정의됨
<experimental/barrier>
|
|
|
(concurrency TS)
|
재사용 가능한 스레드 배리어
(클래스) |
|
(concurrency TS)
|
완료 시 사용자 정의 가능한 동작을 가진 재사용 가능한 스레드 배리어
(클래스) |
원자적 스마트 포인터
이러한 클래스 템플릿은 shared_ptr의 atomic 함수 오버로드 를 대체합니다
|
헤더에 정의됨
<experimental/atomic>
|
|
|
(concurrency TS)
|
std::shared_ptr의 atomic 버전
(클래스 템플릿) |
|
(concurrency TS)
|
std::weak_ptr의 atomic 버전
(클래스 템플릿) |