Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az combinable<T> objektum célja, hogy szál-privát adatmásolatokat biztosítson, hogy zárolásmentes szál-helyi alszámításokat hajtson végre a párhuzamos algoritmusok során. A párhuzamos művelet végén a szál-privát részszámítások ezután összevonhatók egy végső eredményben. Ez az osztály használható megosztott változó helyett, és teljesítménybeli javulást eredményezhet, ha egyébként sok versengés történne a megosztott változóval.
Szemantika
template<typename T>
class combinable;
Paraméterek
T
A végleges egyesített eredmény adattípusa. A típusnak másolatkonstruktort és alapértelmezett konstruktort kell tartalmaznia.
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
| kombinálható | Túlterhelt. Új combinable objektumot hoz létre. |
| ~kombinálható destruktor | Elpusztít egy objektumot combinable . |
Nyilvános módszerek
| Név | Description |
|---|---|
| töröl | Törli az előző használatból származó köztes számítási eredményeket. |
| kombinál | A megadott összevonási funktor meghívásával kiszámítja a szál helyi alszámításainak készletéből származó végső értéket. |
| combine_each | A szál helyi alszámításainak halmazából kiszámítja a végleges értéket a megadott összevonási funktor meghívásával szál-helyi alszámításonként egyszer. A végeredményt a függvényobjektum gyűjti össze. |
| helyi | Túlterhelt. A szál-privát alszámításra mutató hivatkozást ad vissza. |
Nyilvános operátorok
| Név | Description |
|---|---|
| operátor= | Egy combinable objektumból egy combinable objektumhoz rendel hozzá. |
Megjegyzések
További információ: Párhuzamos tárolók és objektumok.
Öröklési hierarchia
combinable
Requirements
Fejléc: ppl.h
Névtér: egyidejűség
átlátszó
Törli az előző használatból származó köztes számítási eredményeket.
void clear();
kombinálható
Új combinable objektumot hoz létre.
combinable();
template <typename _Function>
explicit combinable(_Function _FnInitialize);
combinable(const combinable& _Copy);
Paraméterek
_Funkció
Az inicializálási funktor objektum típusa.
_FnInitialize
Egy függvény, amely a típus Tminden új szál-privát értékének inicializálására lesz meghívva. Támogatnia kell egy függvényhívási operátort az aláírással T ().
_Másolat
Egy meglévő combinable objektum, amelyet ebbe kell másolni.
Megjegyzések
Az első konstruktor inicializálja az új elemeket a típus Talapértelmezett konstruktorával.
A második konstruktor a paraméterként megadott inicializálási funktor használatával inicializálja az _FnInitialize új elemeket.
A harmadik konstruktor a másolási konstruktor.
~kombinálható
Elpusztít egy objektumot combinable .
~combinable();
Összevonni
A megadott összevonási funktor meghívásával kiszámítja a szál helyi alszámításainak készletéből származó végső értéket.
template<typename _Function>
T combine(_Function _FnCombine) const;
Paraméterek
_Funkció
Annak a függvényobjektumnak a típusa, amely két szál-helyi alszámítás kombinálásához lesz meghívva.
_FnCombine
Az alszámítások kombinálásához használt funktor. Az aláírása T (T, T) vagy T (const T&, const T&), és asszociatívnak és kommutatívnak kell lennie.
Visszaadott érték
Az összes szál-privát alszámítás kombinálásának végeredménye.
kombinál_minden
A szál helyi alszámításainak halmazából kiszámítja a végleges értéket a megadott összevonási funktor meghívásával szál-helyi alszámításonként egyszer. A végeredményt a függvényobjektum gyűjti össze.
template<typename _Function>
void combine_each(_Function _FnCombine) const;
Paraméterek
_Funkció
Annak a függvényobjektumnak a típusa, amely egyetlen szál-helyi alszámítás kombinálásához lesz meghívva.
_FnCombine
Az a funktor, amely egy részszámítás kombinálására szolgál. Ezek aláírása void (T) vagy void (const T&), és asszociatívnak és kommutatívnak kell lennie.
helyi
A szál-privát alszámításra mutató hivatkozást ad vissza.
T& local();
T& local(bool& _Exists);
Paraméterek
_Létezik
Egy logikai kifejezésre mutató hivatkozás. Az argumentum által hivatkozott logikai érték akkor true lesz beállítva, ha az alszámítás már létezett ezen a szálon, és false lesz beállítva, ha ez volt az első alszámítás ezen a szálon.
Visszaadott érték
Hivatkozás a szál-privát alszámításra.
operátor=
Egy combinable objektumból egy combinable objektumhoz rendel hozzá.
combinable& operator= (const combinable& _Copy);
Paraméterek
_Másolat
Egy meglévő combinable objektum, amelyet ebbe kell másolni.
Visszaadott érték
Az objektumra combinable mutató hivatkozás.