Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'oggetto combinable<T> ha lo scopo di fornire copie di dati di thread privato, per eseguire calcoli secondari locali per thread senza blocco durante algoritmi paralleli. Alla fine dell'operazione parallela, è possibile unire le sotto-computazioni private del thread in un risultato finale. Questa classe può essere usata in sostituzione di una variabile condivisa e può determinare un miglioramento delle prestazioni qualora vi fosse invece molto conflitto su tale variabile condivisa.
Sintassi
template<typename T>
class combinable;
Parametri
T
Tipo di dati del risultato unito finale. Il tipo deve avere un costruttore di copia e un costruttore predefinito.
Membri
Costruttori pubblici
| Nome | Descrizione |
|---|---|
| combinabile | Sovraccarico. Costruisce un oggetto combinable nuovo. |
| Distruttore combinabile | Elimina un oggetto combinable . |
Metodi pubblici
| Nome | Descrizione |
|---|---|
| cancellare | Cancella tutti i risultati di calcolo intermedi da un utilizzo precedente. |
| combine | Calcola un valore finale dal set di sub-calcoli locali del thread chiamando il funtore combinato fornito. |
| combine_each | Calcola un valore finale dal set di calcoli secondari locali del thread chiamando il funtore combinato fornito una volta per ogni sub-calcolo locale del thread. Il risultato finale viene accumulato dall'oggetto funzione. |
| local | Sovraccarico. Restituisce un riferimento al sottocalcolazione thread-private. |
Operatori pubblici
| Nome | Descrizione |
|---|---|
| operator= | Assegna un oggetto combinable da un altro oggetto combinable. |
Osservazioni:
Per altre informazioni, vedere Contenitori e oggetti paralleli.
Gerarchia di ereditarietà
combinable
Requisiti
Intestazione: ppl.h
Spazio dei nomi: Concurrency
clear
Cancella tutti i risultati di calcolo intermedi da un utilizzo precedente.
void clear();
combinabile
Costruisce un oggetto combinable nuovo.
combinable();
template <typename _Function>
explicit combinable(_Function _FnInitialize);
combinable(const combinable& _Copy);
Parametri
_Funzione
Tipo di oggetto functor per l'inizializzazione.
_FnInitialize
Funzione che verrà chiamata per inizializzare ogni nuovo valore privato del thread del tipo T. Deve supportare un operatore di chiamata di funzione con la firma T ().
_Copiare
Oggetto esistente combinable da copiare in questo oggetto.
Osservazioni:
Il primo costruttore inizializza nuovi elementi con il costruttore predefinito per il tipo T.
Il secondo costruttore inizializza nuovi elementi usando il funtore di inizializzazione fornito come _FnInitialize parametro.
Il terzo costruttore è il costruttore di copia.
~combinabile
Elimina un oggetto combinable .
~combinable();
unire
Calcola un valore finale dal set di sub-calcoli locali del thread chiamando il funtore combinato fornito.
template<typename _Function>
T combine(_Function _FnCombine) const;
Parametri
_Funzione
Tipo di oggetto funzione che verrà invocato per combinare due calcoli parziali locali al thread.
_FnCombine
Funtore utilizzato per combinare i sub-calcoli. La firma è T (T, T) o T (const T&, const T&)e deve essere associativa e commutativa.
Valore restituito
Il risultato finale della combinazione di tutte le sotto-computazioni private per thread.
combine_each
Calcola un valore finale dal set di calcoli secondari locali del thread chiamando il funtore combinato fornito una volta per ogni sub-calcolo locale del thread. Il risultato finale viene accumulato dall'oggetto funzione.
template<typename _Function>
void combine_each(_Function _FnCombine) const;
Parametri
_Funzione
Tipo dell'oggetto funzione che verrà richiamato per combinare un singolo sub-calcolo locale a thread.
_FnCombine
Funtore utilizzato per combinare una sottocomputazione. La firma è void (T) o void (const T&)e deve essere associativa e commutativa.
locale
Restituisce un riferimento al sottocalcolazione thread-private.
T& local();
T& local(bool& _Exists);
Parametri
_Esiste
Riferimento a un valore booleano. Il valore booleano a cui fa riferimento questo argomento verrà impostato true se il calcolo secondario esiste già in questo thread e impostato su false se si tratta della prima sottocalcolazione in questo thread.
Valore restituito
Riferimento alla sottocomputazione privata del thread.
operator=
Assegna un oggetto combinable da un altro oggetto combinable.
combinable& operator= (const combinable& _Copy);
Parametri
_Copiare
Oggetto esistente combinable da copiare in questo oggetto.
Valore restituito
Riferimento a questo combinable oggetto.