Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das combinable<T>-Objekt ist dazu gedacht, threadprivate Kopien von Daten bereitzustellen, mit denen sperrenfreie, threadlokale Unterberechnungen in parallelen Algorithmen durchgeführt werden können. Am Ende der parallelen Ausführung können die thread-privaten Unterberechnungen in einem Gesamtergebnis zusammengeführt werden. Diese Klasse kann anstelle einer freigegebenen Variable verwendet werden, und sie kann zu einer Leistungsverbesserung führen, wenn andernfalls Konflikte mit dieser freigegebenen Variable entstehen würden.
Syntax
template<typename T>
class combinable;
Parameter
T
Der Datentyp des endgültigen zusammengeführten Ergebnisses. Der Typ muss einen Kopierkonstruktor und einen Standardkonstruktor haben.
Mitglieder
Öffentliche Konstruktoren
| Name | Beschreibung |
|---|---|
| kombinierbar | Überladen. Erstellt ein neues combinable-Objekt. |
| ~kombinierbarer Destruktor | Zerstört ein combinable -Objekt. |
Öffentliche Methoden
| Name | Beschreibung |
|---|---|
| clear | Löscht alle zwischengeschalteten Berechnungsergebnisse aus einer vorherigen Verwendung. |
| kombinieren | Berechnet einen endgültigen Wert aus der Menge von Thread-lokalen Unterberechnungen, indem der bereitgestellte Kombinations-Funktor aufgerufen wird. |
| combine_each | Berechnet einen endgültigen Wert aus der Menge von Thread-lokalen Unterberechnungen, indem der angegebene Kombinationsfunktor einmal pro Thread-lokale Unterberechnung aufgerufen wird. Das Endergebnis wird vom Funktionsobjekt gesammelt. |
| local | Überladen. Gibt einen Verweis auf die threadspezifische Unterberechnung zurück. |
Öffentliche Operatoren
| Name | Beschreibung |
|---|---|
| operator= | Weist einem combinable-Objekt aus einem anderen combinable-Objekt zu. |
Hinweise
Weitere Informationen finden Sie unter Parallel Containers and Objects.
Vererbungshierarchie
combinable
Anforderungen
Kopfzeile: ppl.h
Namespace: Parallelität
klar
Löscht alle zwischengeschalteten Berechnungsergebnisse aus einer vorherigen Verwendung.
void clear();
kombinierbar
Erstellt ein neues combinable-Objekt.
combinable();
template <typename _Function>
explicit combinable(_Function _FnInitialize);
combinable(const combinable& _Copy);
Parameter
_Funktion
Der Typ des Initialisierungs-Functor-Objekts.
_FnInitialize
Eine Funktion, die aufgerufen wird, um jeden neuen thread-privaten Wert des Typs Tzu initialisieren. Er muss einen Funktionsaufrufoperator mit der Signatur T ()unterstützen.
_Kopieren
Ein vorhandenes combinable Objekt, das in dieses Objekt kopiert werden soll.
Hinweise
Der erste Konstruktor initialisiert neue Elemente mit dem Standardkonstruktor für den Typ T.
Der zweite Konstruktor initialisiert neue Elemente mithilfe des als _FnInitialize Parameter bereitgestellten Initialisierungs-Functors.
Der dritte Konstruktor ist der Kopierkonstruktor.
~kombinierbar
Zerstört ein combinable -Objekt.
~combinable();
zusammenführen
Berechnet einen endgültigen Wert aus der Menge von Thread-lokalen Unterberechnungen, indem der bereitgestellte Kombinations-Funktor aufgerufen wird.
template<typename _Function>
T combine(_Function _FnCombine) const;
Parameter
_Funktion
Der Typ des Funktionsobjekts, das aufgerufen wird, um zwei threadlokale Unterberechnungen zu kombinieren.
_FnCombine
Der Functor, der zum Kombinieren der Unterberechnungen verwendet wird. Ihre Signatur ist T (T, T) oder T (const T&, const T&), und sie muss assoziativ und kommutativ sein.
Rückgabewert
Das Endergebnis der Kombination aller thread-privaten Unterberechnungen.
combine_each
Berechnet einen endgültigen Wert aus der Menge von Thread-lokalen Unterberechnungen, indem der angegebene Kombinationsfunktor einmal pro Thread-lokale Unterberechnung aufgerufen wird. Das Endergebnis wird vom Funktionsobjekt gesammelt.
template<typename _Function>
void combine_each(_Function _FnCombine) const;
Parameter
_Funktion
Der Typ des Funktionsobjekts, das aufgerufen wird, um eine einzelne Thread-lokale Unterberechnung zu kombinieren.
_FnCombine
Der Functor, der zum Kombinieren einer Unterberechnung verwendet wird. Seine Signatur ist void (T) oder void (const T&), und muss assoziativ und kommutativ sein.
lokal
Gibt einen Verweis auf die threadspezifische Unterberechnung zurück.
T& local();
T& local(bool& _Exists);
Parameter
_Existiert
Ein Verweis auf einen booleschen Wert. Der boolesche Wert, auf den dieses Argument verweist, wird auf true gesetzt, wenn die Unterberechnung in diesem Thread bereits existierte, und auf false gesetzt, wenn dies die erste Unterberechnung in diesem Thread war.
Rückgabewert
Ein Verweis auf die thread-eigene Unterberechnung.
operator =
Weist einem combinable-Objekt aus einem anderen combinable-Objekt zu.
combinable& operator= (const combinable& _Copy);
Parameter
_Kopieren
Ein vorhandenes combinable Objekt, das in dieses Objekt kopiert werden soll.
Rückgabewert
Ein Verweis auf das combinable-Objekt.