Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.