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 i sub-calcoli del thread privato 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 | Con overload. Costruisce un oggetto combinable nuovo. |
| Distruttore ~combinable | Elimina un oggetto combinable . |
Metodi pubblici
| Nome | Descrizione |
|---|---|
| deselezionare | 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 | Con overload. Restituisce un riferimento al sottocalcolazione thread-private. |
Operatori pubblici
| Nome | Descrizione |
|---|---|
| operator= | Assegna a un combinable oggetto da un altro combinable oggetto. |
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 dell'oggetto functor di 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();
combine
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 dell'oggetto funzione che verrà richiamato per combinare due sub-calcoli locali del 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
Risultato finale della combinazione di tutti i sub-computation thread-private.
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 un sottocalcolazione. La firma è void (T) o void (const T&)e deve essere associativa e commutativa.
local
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 al sub-calcolo thread-privato.
operator=
Assegna a un combinable oggetto da un altro combinable oggetto.
combinable& operator= (const combinable& _Copy);
Parametri
_Copiare
Oggetto esistente combinable da copiare in questo oggetto.
Valore restituito
Riferimento a questo combinable oggetto.