Udostępnij za pośrednictwem


combinable — Klasa

Obiekt combinable<T> ma na celu zapewnienie prywatnych kopii danych wątkowych w celu wykonywania obliczeń podrzędnych bez blokady lokalnych wątków podczas algorytmów równoległych. Na końcu operacji równoległej obliczenia podrzędne thread-private można następnie scalić w końcowy wynik. Tej klasy można użyć zamiast zmiennej udostępnionej i może spowodować poprawę wydajności, jeśli w przeciwnym razie będzie wiele rywalizacji o tę współdzieloną zmienną.

Składnia

template<typename T>
class combinable;

Parametry

T
Typ danych końcowego scalonego wyniku. Typ musi mieć konstruktor kopiujący i domyślny konstruktor.

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
Combinable Przeciążone. Tworzy nowy combinable obiekt.
~combinable Destruktor combinable Niszczy obiekt.

Metody publiczne

Nazwa/nazwisko opis
jasny Czyści wszystkie pośrednie wyniki obliczeniowe z poprzedniego użycia.
mieszać Oblicza ostateczną wartość z zestawu podkonców thread-local przez wywołanie dostarczonego narzędzia functor łączenia.
combine_each Oblicza ostateczną wartość z zestawu podliczek wątków lokalnych przez wywołanie dostarczonego narzędzia functor raz na podliczanie wątku lokalnego. Końcowy wynik jest skumulowany przez obiekt funkcji.
local Przeciążone. Zwraca odwołanie do podliczenia wątku prywatnego.

Operatory publiczne

Nazwa/nazwisko opis
operator = Przypisuje do combinable obiektu z innego combinable obiektu.

Uwagi

Aby uzyskać więcej informacji, zobacz Parallel Containers and Objects (Kontenery równoległe i obiekty).

Hierarchia dziedziczenia

combinable

Wymagania

Nagłówek: ppl.h

Przestrzeń nazw: współbieżność

jasny

Czyści wszystkie pośrednie wyniki obliczeniowe z poprzedniego użycia.

void clear();

Combinable

Tworzy nowy combinable obiekt.

combinable();

template <typename _Function>
explicit combinable(_Function _FnInitialize);

combinable(const combinable& _Copy);

Parametry

_Funkcja
Typ obiektu functor inicjowania.

_FnInitialize
Funkcja, która zostanie wywołana w celu zainicjowania każdej nowej wartości wątku prywatnego typu T. Musi obsługiwać operator wywołania funkcji z podpisem T ().

_Kopiować
Istniejący combinable obiekt do skopiowania do tego obiektu.

Uwagi

Pierwszy konstruktor inicjuje nowe elementy za pomocą konstruktora domyślnego dla typu T.

Drugi konstruktor inicjuje nowe elementy przy użyciu inicjatora inicjalizacji dostarczonego jako parametr._FnInitialize

Trzeci konstruktor jest konstruktorem kopii.

~Combinable

combinable Niszczy obiekt.

~combinable();

mieszać

Oblicza ostateczną wartość z zestawu podkonców thread-local przez wywołanie dostarczonego narzędzia functor łączenia.

template<typename _Function>
T combine(_Function _FnCombine) const;

Parametry

_Funkcja
Typ obiektu funkcji, który zostanie wywołany w celu połączenia dwóch podliców wątkowych.

_FnCombine
Functor używany do łączenia podli obliczeń. Jego podpis to T (T, T) lub T (const T&, const T&), i musi być asocjacyjny i dojeżdżający.

Wartość zwracana

Końcowy wynik połączenia wszystkich podliców wątkowych.

combine_each

Oblicza ostateczną wartość z zestawu podliczek wątków lokalnych przez wywołanie dostarczonego narzędzia functor raz na podliczanie wątku lokalnego. Końcowy wynik jest skumulowany przez obiekt funkcji.

template<typename _Function>
void combine_each(_Function _FnCombine) const;

Parametry

_Funkcja
Typ obiektu funkcji, który zostanie wywołany w celu połączenia pojedynczego podliczenia wątku lokalnego.

_FnCombine
Functor, który jest używany do łączenia jednego podliczenia. Jego podpis to void (T) lub void (const T&), i musi być asocjacyjny i dojeżdżający.

local

Zwraca odwołanie do podliczenia wątku prywatnego.

T& local();

T& local(bool& _Exists);

Parametry

_Istnieje
Odwołanie do wartości logicznej. Wartość logiczna, do którego odwołuje się ten argument, zostanie ustawiona wartość true , jeśli podlitowe obliczenia już istniały w tym wątku, i ustawiono wartość na false to, czy była to pierwsza podlika obliczeniowa w tym wątku.

Wartość zwracana

Odwołanie do podliczenia wątku prywatnego.

operator =

Przypisuje do combinable obiektu z innego combinable obiektu.

combinable& operator= (const combinable& _Copy);

Parametry

_Kopiować
Istniejący combinable obiekt do skopiowania do tego obiektu.

Wartość zwracana

Odwołanie do tego combinable obiektu.

Zobacz też

Przestrzeń nazw współbieżności