Condividi tramite


Runtime di concorrenza

Il runtime di concorrenza per C++ consente di scrivere applicazioni parallele affidabili, scalabili ed efficienti.Innalza il livello di astrazione in modo da evitare di dover gestire i dettagli dell'infrastruttura correlati alla concorrenza.È inoltre possibile utilizzarlo per specificare i criteri di pianificazione che soddisfano le richieste di qualità del servizio delle applicazioni.Utilizzare queste soluzioni per poter iniziare a utilizzare il runtime di concorrenza.

Per la documentazione di riferimento, vedere Riferimento (runtime di concorrenza).

SuggerimentoSuggerimento

Il runtime di concorrenza si basa in modo rilevante sulle funzionalità C++11 e adottano lo stile più moderno C++.Per ulteriori informazioni, vedere Digitare di nuovo a C++ (C++ moderno).

Scegliere le funzionalità del runtime di concorrenza

Cenni preliminari sul runtime di concorrenza

Viene illustrato il motivo per cui è importante il runtime di concorrenza e vengono descritte le relative funzionalità principali.

Confronto tra runtime di concorrenza e altri modelli di concorrenza

Viene illustrato il confronto tra il runtime di concorrenza ed altri modelli di concorrenza, ad esempio il pool di thread di Windows e OpenMP, in modo da poter utilizzare il modello di concorrenza più adatto ai requisiti dell'applicazione.

Migrazione da OpenMP al runtime di concorrenza

Confronta OpenMP al runtime di concorrenza e vengono forniti esempi su come eseguire la migrazione del codice OpenMP esistente per utilizzare il runtime di concorrenza.

PPL (Parallel Patterns Library)

Viene descritta la libreria PPL, che fornisce i cicli, le attività e i contenitori paralleli in parallelo.

Libreria di agenti asincroni

Introduttive su come utilizzare gli agenti asincroni e il passaggio dei messaggi di includere facilmente e il flusso delle attività di pipelining nelle applicazioni.

Utilità di pianificazione (runtime di concorrenza)

Si verifica all'utilità di pianificazione, che consente di ottimizzare le prestazioni delle applicazioni desktop che utilizzano il runtime di concorrenza.

Parallelismo delle attività nella libreria PPL

Parallelismo delle attività (runtime di concorrenza)

Procedura: utilizzare parallel_invoke per scrivere una routine di ordinamento in parallelo

Procedura: utilizzare parallel_invoke per eseguire operazioni in parallelo

Procedura: creare un'attività che viene completata dopo un ritardo

Vengono descritte le attività e i gruppi di attività, che consentono di scrivere codice asincrono e per scomporre il lavoro parallelo in sezioni più piccole.

Procedura dettagliata: implementazione di future

Viene illustrato come combinare le funzionalità del runtime di concorrenza per eseguire un'operazione di più.

Procedura dettagliata: rimozione di lavoro da un thread dell'interfaccia utente

Viene illustrato come spostare il lavoro eseguito dal thread UI in un'applicazione MFC a un thread di lavoro.

Procedure consigliate nella libreria PPL (Parallel Patterns Library)

Procedure consigliate generali nel runtime di concorrenza

Vengono forniti suggerimenti e procedure consigliate per l'utilizzo della libreria PPL.

Parallelismo dei dati nella libreria PPL

Algoritmi paralleli

Procedura: scrivere un ciclo parallel_for

Procedura: scrivere un ciclo parallel_for_each

Procedura: eseguire operazioni di mapping e riduzione in parallelo

Viene descritto parallel_for, parallel_for_each, parallel_invokee altri algoritmi paralleli.Utilizzare gli algoritmi paralleli per risolvere i problemi paralleli di dati che costituiscono raccolte di dati.

Contenitori e oggetti paralleli

Procedura: utilizzare i contenitori paralleli per aumentare l'efficienza

Procedura: utilizzare la classe combinable per migliorare le prestazioni

Procedura: utilizzare l'oggetto combinable per combinare set

Viene descritta la classe di combinable nonché concurrent_vector, concurrent_queue, concurrent_unordered_mape altri contenitori paralleli.Utilizzare i contenitori e oggetti paralleli quando i contenitori che consentono l'accesso thread-safe ai relativi elementi.

Procedure consigliate nella libreria PPL (Parallel Patterns Library)

Procedure consigliate generali nel runtime di concorrenza

Vengono forniti suggerimenti e procedure consigliate per l'utilizzo della libreria PPL.

Annullare le attività e algoritmi paralleli

Annullamento nella libreria PPL

Viene descritto il ruolo dell'annullamento nella libreria PPL, ad esempio come avviare e rispondere alle richieste di annullamento.

Procedura: utilizzare l'annullamento per interrompere un ciclo Parallel

Procedura: utilizzare la gestione delle eccezion per interrompere un ciclo Parallel

Vengono illustrati due modi per annullare un lavoro parallelo dati.

Applicazioni dell'archivio di Windows

Creazione di operazioni asincrone in C++ per le applicazioni Windows Store

Vengono descritti alcuni punti chiave di cui tenere conto quando si utilizza il runtime di concorrenza per produrre operazioni asincrone in un'applicazione di Windows Store.

Procedura dettagliata: connessione tramite attività e richiesta HTTP XML (IXHR2)

Viene illustrato come combinare le attività di libreria PPL con interfacce di IXMLHTTPRequest2Callback e di IXMLHTTPRequest2 inviare HTTP GET ed INSERIRE le richieste a un servizio web in un'applicazione di Windows Store.

Esempi di applicazione dell'archivio di Windows

Contiene esempi di codice scaricabili e applicazioni demo per Windows 8.Esempi di C++ utilizzano le funzionalità del runtime di concorrenza come attività di libreria PPL elaborare i dati in background per mantenere reattiva UX.

Programmazione del flusso di dati nella libreria di agenti asincroni

Agenti asincroni

Blocchi dei messaggi asincroni

Funzioni di passaggio dei messaggi

Procedura: implementare vari modelli producer-consumer

Procedura: fornire funzioni lavoro alle classi call e transformer

Procedura: Utilizzare la classe transformer in una pipeline di dati

Procedura: effettuare una scelta tra le attività completate

Procedura: inviare un messaggio a intervalli regolari

Procedura: utilizzare il filtro di blocco dei messaggi

Vengono descritti gli agenti asincroni, blocchi dei messaggi e funzioni di passaggio dei messaggi, che sono i blocchi predefiniti per eseguire operazioni del flusso di dati nel runtime di concorrenza.

Procedura dettagliata: creazione di un'applicazione basata sugli agenti

Procedura dettagliata: creazione di un agente del flusso di dati

Viene illustrato come creare le applicazioni basate sugli agenti di base.

Procedura dettagliata: creazione di una rete per l'elaborazione di immagini

Viene illustrato come creare una rete di blocchi di messaggi asincroni che eseguono l'elaborazione di immagini.

Procedura dettagliata: utilizzo della classe join per impedire un deadlock

Utilizza il problema dei filosofi a cena per illustrare come utilizzare il runtime di concorrenza per impedire un deadlock nell'applicazione.

Procedura dettagliata: creazione di un blocco dei messaggi personalizzato

Viene illustrato come creare un tipo di blocco di messaggi personalizzato che consente di ordinare i messaggi in arrivo in base alla priorità.

Procedure consigliate nella libreria di agenti asincroni

Procedure consigliate generali nel runtime di concorrenza

Vengono forniti suggerimenti e procedure consigliate per l'utilizzo degli agenti.

Gestione delle eccezioni e debug

Gestione delle eccezioni nel runtime di concorrenza

Viene descritto come gestire le eccezioni nel runtime di concorrenza.

Strumenti di diagnostica in parallelo (runtime di concorrenza)

Viene illustrato come ottimizzare le applicazioni e utilizzare il più efficacemente possibile il runtime di concorrenza.

Prestazioni di ottimizzazione

Strumenti di diagnostica in parallelo (runtime di concorrenza)

Viene illustrato come ottimizzare le applicazioni e utilizzare il più efficacemente possibile il runtime di concorrenza.

Istanze dell'utilità di pianificazione

Procedura: gestire un'istanza dell'utilità di pianificazione

Criteri dell'utilità di pianificazione

Procedura: specificare criteri dell'utilità di pianificazione specifici

Procedura: creare agenti che utilizzano criteri dell'utilità di pianificazione specifici

Viene illustrato come utilizzare gestiscono le istanze dell'utilità di pianificazione e criteri dell'utilità di pianificazione.Per le applicazioni desktop, i criteri dell'utilità di pianificazione consentono di associare le regole specifiche a specifici tipi di carichi di lavoro.È possibile ad esempio creare un'istanza dell'utilità di pianificazione per eseguire alcune attività con una priorità di thread elevata e utilizzare l'utilità di pianificazione predefinita per eseguire altre attività con una priorità di thread normale.

Gruppi di pianificazione

Procedura: utilizzare i gruppi di pianificazione per influenzare l'ordine di esecuzione

Viene illustrato come utilizzare i gruppi di pianificazione per affinitize raccolta, o il gruppo, attività correlate.Ad esempio, è possibile richiedere un livello di località alto tra le attività correlate alle attività vantaggiosa per eseguire lo stesso nodo del processore.

Attività leggere

Viene illustrato come le attività leggere sono utili per creare il lavoro che non richiede il bilanciamento del carico o l'annullamento e quali sono utili per adattare il codice esistente per l'utilizzo con il runtime di concorrenza.

Contesti

Procedura: utilizzare la classe Context per implementare una classe semaforo di cooperazione

Procedura: utilizzare l'oversubscription per compensare la latenza

Viene descritto come controllare il comportamento dei thread gestiti dal runtime di concorrenza.

Funzioni di gestione della memoria

Procedura: utilizzare Alloc e Free per migliorare le prestazioni di memoria

Vengono descritte le funzioni di gestione della memoria che il runtime di concorrenza che consentono di allocare e liberare memoria in modo simultaneo.

Risorse supplementari

Modelli e suggerimenti di programmazione Asincrono in Hilo (finestre archiviano le applicazioni utilizzando C++ e XAML)

Viene descritto come è stato utilizzato il runtime di concorrenza per implementare le operazioni asincrone in Hilo, un'applicazione di Windows Store utilizzando C++ e XAML.

Esempi di codice per la raccolta del modello in parallelo e del runtime di concorrenza in Visual Studio 2010

Fornisce le applicazioni di esempio e utilità che illustrano il runtime di concorrenza.

Blog sulla programmazione in parallelo in codice nativo

Vengono forniti ulteriori articoli dettagliati del blog sulla programmazione in parallelo nel runtime di concorrenza.

Forum sull'elaborazione in parallelo in codice nativo e in CC++

Consente di partecipare alle discussioni della community sul runtime di concorrenza.

Programmazione parallela in .NET Framework

Viene illustrato il modello di programmazione in parallelo disponibile in .NET Framework.

Vedere anche

Altre risorse

Riferimento (runtime di concorrenza)