Share via


combineerbare klasse

Het combinable<T> object is bedoeld om thread-privékopieën van gegevens te bieden, om vergrendelingsvrije thread-lokale subberekeningen uit te voeren tijdens parallelle algoritmen. Aan het einde van de parallelle bewerking kunnen de thread-privésubberekeningen vervolgens worden samengevoegd in een eindresultaat. Deze klasse kan worden gebruikt in plaats van een gedeelde variabele en kan leiden tot een prestatieverbetering als er anders veel conflicten zouden optreden op die gedeelde variabele.

Syntaxis

template<typename T>
class combinable;

Parameterwaarden

T
Het gegevenstype van het uiteindelijke samengevoegde resultaat. Het type moet een kopieerconstructor en een standaardconstructor hebben.

Leden

Openbare constructors

Naam Description
combineerbaar Overbelast. Maakt een nieuw combinable object.
~combinatiebare destructor Vernietigt een combinable object.

Openbare methoden

Naam Description
wissen Wist eventuele tussenliggende rekenkundige resultaten van een eerder gebruik.
combineren Berekent een uiteindelijke waarde uit de set van thread-lokale subberekeningen door de meegeleverde combineer-functor aan te roepen.
combine_each Berekent een uiteindelijke waarde uit de set thread-lokale subberekeningen door de meegeleverde combinatie-functor eenmaal per thread-lokale subberekening aan te roepen. Het uiteindelijke resultaat wordt verzameld door het functieobject.
lokale Overbelast. Retourneert een verwijzing naar de draad-privé subberekening.

Openbare operators

Naam Description
operator= Wijs toe aan een combinable object vanuit een ander combinable object.

Opmerkingen

Zie Parallelle containers en objecten voor meer informatie.

Overnamehiërarchie

combinable

Requirements

Koptekst: ppl.h

Naamruimte: concurrentie

duidelijk

Wist eventuele tussenliggende rekenkundige resultaten van een eerder gebruik.

void clear();

combineerbaar

Maakt een nieuw combinable object.

combinable();

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

combinable(const combinable& _Copy);

Parameterwaarden

_Functie
Het type initialisatie-functorobject.

_FnInitialize
Een functie die wordt aangeroepen om elke nieuwe thread-privéwaarde van het type Tte initialiseren. Deze moet een operator voor functieoproep ondersteunen met de handtekening T ().

_Kopiëren
Een bestaand combinable object dat in dit object moet worden gekopieerd.

Opmerkingen

De eerste constructor initialiseert nieuwe elementen met de standaardconstructor voor het type T.

De tweede constructor initialiseert nieuwe elementen met behulp van de initialisatie-functor die als parameter _FnInitialize wordt opgegeven.

De derde constructor is de kopieerconstructor.

~combineerbaar

Vernietigt een combinable object.

~combinable();

Combineren

Berekent een uiteindelijke waarde uit de set thread-lokale subberekeningen door de meegeleverde combine functor aan te roepen.

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

Parameterwaarden

_Functie
Het type van het functieobject dat wordt aangeroepen om twee thread-lokale subberekeningen te combineren.

_FnCombine
De functor die wordt gebruikt om de subberekeningen te combineren. De handtekening is T (T, T) of T (const T&, const T&), en moet associatief en commutatief zijn.

Retourwaarde

Het uiteindelijke resultaat van het combineren van alle thread-private subberekeningen.

combine_each

Berekent een uiteindelijke waarde uit de set thread-lokale subberekeningen door de meegeleverde combinatie-functor eenmaal per thread-lokale subberekening aan te roepen. Het uiteindelijke resultaat wordt verzameld door het functieobject.

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

Parameterwaarden

_Functie
Het type van het functieobject dat wordt aangeroepen om één thread-lokale subberekening te combineren.

_FnCombine
De functor die wordt gebruikt om één subberekening te combineren. De handtekening is void (T) of void (const T&), en moet associatief en commutatief zijn.

lokaal

Retourneert een verwijzing naar de draad-privé subberekening.

T& local();

T& local(bool& _Exists);

Parameterwaarden

_Bestaat
Een verwijzing naar een Booleaanse waarde. De booleaanse waarde waarnaar door dit argument wordt verwezen, wordt ingesteld op true als de subberekening al bestond op deze thread, en ingesteld op false als dit de eerste subberekening op deze thread was.

Retourwaarde

Een verwijzing naar de thread-specifieke subberekening.

operator=

Wijs toe aan een combinable object vanuit een ander combinable object.

combinable& operator= (const combinable& _Copy);

Parameterwaarden

_Kopiëren
Een bestaand combinable object dat in dit object moet worden gekopieerd.

Retourwaarde

Een verwijzing naar dit combinable object.

Zie ook

concurrentie Namespace