다음을 통해 공유


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 개체에 대한 참조입니다.

참고 항목

concurrency 네임스페이스