combinable 클래스
combinable<T>
개체는 병렬 알고리즘 중에 잠금 없는 스레드 로컬 하위 계산을 수행하기 위해 데이터의 스레드 전용 복사본을 제공합니다. 병렬 작업이 끝나면 스레드 전용 하위 계산을 최종 결과에 병합할 수 있습니다. 이 클래스는 공유 변수 대신 사용될 수 있으며, 그렇지 않을 경우 해당 공유 변수에 대한 경합이 많으면 성능이 향상될 수 있습니다.
구문
template<typename T>
class combinable;
매개 변수
T
최종 병합된 결과의 데이터 형식입니다. 형식에는 복사 생성자와 기본 생성자가 있어야 합니다.
멤버
공용 생성자
속성 | 설명 |
---|---|
결합 가능 | 오버로드됨. 새 combinable 개체를 생성합니다. |
~결합 가능한 소멸자 | combinable 개체를 제거합니다. |
공용 메서드
이름 | 설명 |
---|---|
clear | 이전 사용량에서 중간 계산 결과를 지웁니다. |
combine | 제공된 결합 펀터를 호출하여 스레드 로컬 하위 계산 집합에서 최종 값을 계산합니다. |
combine_each | 제공된 결합 펀터를 스레드-로컬 하위 계산당 한 번 호출하여 스레드-로컬 하위 계산 집합에서 최종 값을 계산합니다. 최종 결과는 함수 개체에 의해 누적됩니다. |
local | 오버로드됨. 스레드-프라이빗 하위 계산에 대한 참조를 반환합니다. |
Public 연산자
속성 | 설명 |
---|---|
operator= | 다른 combinable 개체의 개체에 combinable 할당합니다. |
설명
자세한 내용은 병렬 컨테이너 및 개체를 참조 하세요.
상속 계층 구조
combinable
요구 사항
헤더: ppl.h
네임스페이스: 동시성
clear
이전 사용량에서 중간 계산 결과를 지웁니다.
void clear();
결합 가능
새 combinable
개체를 생성합니다.
combinable();
template <typename _Function>
explicit combinable(_Function _FnInitialize);
combinable(const combinable& _Copy);
매개 변수
_기능
초기화 functor 개체의 형식입니다.
_FnInitialize
형식 T
의 각 새 스레드-프라이빗 값을 초기화하기 위해 호출되는 함수입니다. 서명 T ()
이 있는 함수 호출 연산자를 지원해야 합니다.
_복사
이 개체에 복사할 기존 combinable
개체입니다.
설명
첫 번째 생성자는 형식 T
에 대한 기본 생성자를 사용하여 새 요소를 초기화합니다.
두 번째 생성자는 매개 변수로 _FnInitialize
제공된 초기화 functor를 사용하여 새 요소를 초기화합니다.
세 번째 생성자는 복사 생성자입니다.
~결합 가능
combinable
개체를 제거합니다.
~combinable();
combine
제공된 결합 펀터를 호출하여 스레드 로컬 하위 계산 집합에서 최종 값을 계산합니다.
template<typename _Function>
T combine(_Function _FnCombine) const;
매개 변수
_기능
두 스레드 로컬 하위 계산을 결합하기 위해 호출될 함수 개체의 형식입니다.
_FnCombine
하위 계산을 결합하는 데 사용되는 functor입니다. 해당 서명은 T (T, T)
결합 T (const T&, const T&)
적이고 통근적이어야 합니다.
Return Value
모든 스레드-프라이빗 하위 계산을 결합한 최종 결과입니다.
combine_each
제공된 결합 펀터를 스레드-로컬 하위 계산당 한 번 호출하여 스레드-로컬 하위 계산 집합에서 최종 값을 계산합니다. 최종 결과는 함수 개체에 의해 누적됩니다.
template<typename _Function>
void combine_each(_Function _FnCombine) const;
매개 변수
_기능
단일 스레드-로컬 하위 계산을 결합하기 위해 호출될 함수 개체의 형식입니다.
_FnCombine
하나의 하위 계산을 결합하는 데 사용되는 functor입니다. 해당 서명은 void (T)
결합 void (const T&)
적이고 통근적이어야 합니다.
로컬
스레드-프라이빗 하위 계산에 대한 참조를 반환합니다.
T& local();
T& local(bool& _Exists);
매개 변수
_존재
부울에 대한 참조입니다. 이 인수에서 참조하는 부울 값은 하위 계산이 이 스레드에 이미 있는 경우로 설정 true
되고 이 스레드의 첫 번째 하위 계산인 경우로 설정 false
됩니다.
Return Value
스레드-프라이빗 하위 계산에 대한 참조입니다.
operator=
다른 combinable
개체의 개체에 combinable
할당합니다.
combinable& operator= (const combinable& _Copy);
매개 변수
_복사
이 개체에 복사할 기존 combinable
개체입니다.
Return Value
이 combinable
개체에 대한 참조입니다.