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.