Runtime di concorrenza
Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

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. È anche possibile usarlo per specificare i criteri di pianificazione che soddisfano le richieste di qualità del servizio delle applicazioni. Queste risorse permettono di iniziare a usare il runtime di concorrenza.

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

System_CAPS_tipSuggerimento

Il runtime di concorrenza si basa fortemente sulle funzionalità C++11 e adotta lo stile C++ più moderno. Per altre informazioni, vedere C++ (C++ moderno).

Cenni preliminari sul runtime di concorrenza

Illustra i motivi che rendono importante il runtime di concorrenza e ne descrive le funzionalità essenziali.

Confronto tra runtime di concorrenza e altri modelli di concorrenza

Illustra 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 sare il modello di concorrenza più adatto ai requisiti dell'applicazione.

Migrazione da OpenMP al runtime di concorrenza

Confronta OpenMP e il Runtime di Concorrenza e fornisce esempi su come eseguire la migrazione del codice OpenMP esistente per l'uso del runtime di concorrenza.

PPL (Parallel Patterns Library)

Presenta la libreria PPL, che fornisce i cicli, le attività e i contenitori paralleli.

Libreria di agenti asincroni

Illustra come usare gli agenti asincroni e i passaggio dei messaggi per incorporare facilmente le attività di pipelining e il flusso di dati nelle applicazioni.

Utilità di pianificazione (runtime di concorrenza)

Presenta l'Utilità di Pianificazione, che consente di ottimizzare le prestazioni delle applicazioni desktop che usano il runtime di concorrenza.

Parallelismo delle attività (runtime di concorrenza)

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

Procedura: Usare parallel_invoke per eseguire operazioni in parallelo

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

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

Procedura dettagliata: Implementazione di date future

Illustra come combinare le funzionalità del runtime di concorrenza per eseguire più operazioni.

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

Illustra come spostare il lavoro eseguito dal thread della 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

Fornisce suggerimenti e procedure consigliate per lavorare con il 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

Illustra parallel_for, parallel_for_each, parallel_invoke e altri algoritmi paralleli. Usare gli algoritmi paralleli per risolvere i problemi di tipo dati in parallelo che coinvolgono raccolte di dati.

Contenitori e oggetti paralleli

Procedura: Usare i contenitori paralleli per aumentare l'efficienza

Procedura: Usare la classe combinable per migliorare le prestazioni

Procedura: Usare l'oggetto combinable per combinare set

Illustra la classe combinable, oltre a concurrent_vector, concurrent_queue, concurrent_unordered_map e altri contenitori paralleli. Usare i contenitori e gli oggetti paralleli quando sono necessari 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

Fornisce suggerimenti e procedure consigliate per lavorare con il PPL.

Annullamento nella libreria PPL

Descrive 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: Usare la gestione delle eccezion per interrompere un ciclo Parallel

Illustra due modi per annullare un lavoro con dati in parallelo.

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

Illustra alcuni punti chiave da ricordare quando si usa il runtime di concorrenza per produrre operazioni asincrone in un'app Windows 8.x Store.

Procedura dettagliata: Connessione tramite attività e richieste HTTP XML

Illustra come combinare le attività della libreria PPL con le interfacce IXMLHTTPRequest2 e IXMLHTTPRequest2Callback per inviare richieste HTTP GET e POST ad un servizio web in un'app Windows 8.x Store.

Esempi di app di Windows Store

Contiene codici di esempio scaricabili e app demo per Windows 8 Windows 8. Gli esempi in C++ usano le funzionalità del runtime di concorrenza come attività della libreria PPL per elaborare i dati in background per mantenere l'esperienza utente reattiva.

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: Usare la classe transformer in una pipeline di dati

Procedura: Effettuare una scelta tra le attività completate

Procedura: Inviare un messaggio a intervalli regolari

Procedura: Usare il filtro di blocco dei messaggi

Illustra genti asincroni, blocchi di messaggio e funzioni di passaggio dei messaggi, ovvero i blocchi predefiniti per l'esecuzione di operazioni di flusso dei dati nel runtime di concorrenza.

Procedura dettagliata: Creazione di un'applicazione basata sugli agenti

Procedura dettagliata: Creazione di un agente del flusso di dati

Illustra come creare applicazioni di base basate sugli agenti.

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

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

Procedura dettagliata: Uso della classe join per impedire un deadlock

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

Procedura dettagliata: creazione di un blocco dei messaggi personalizzato

Illustra 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

Fornisce suggerimenti e procedure consigliate per gli agenti.

Gestione delle eccezioni nel runtime di concorrenza

Illustra come gestire le eccezioni nel runtime di concorrenza.

Strumenti di diagnostica in parallelo (runtime di concorrenza)

Illustra come ottimizzare le applicazioni e usare il più efficacemente possibile il runtime di concorrenza.

Strumenti di diagnostica in parallelo (runtime di concorrenza)

Illustra come ottimizzare le applicazioni e usare 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: Definire criteri dell'utilità di pianificazione specifici

Procedura: Creare agenti che usano criteri dell'utilità di pianificazione specifici

Illustra come usare la gestione delle istanze dell'utilità di pianificazione e i criteri dell'utilità di pianificazione. Per le app desktop, i criteri dell'utilità di pianificazione consentono di associare 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 usare l'utilità di pianificazione predefinita per eseguire altre attività con una priorità di thread normale.

Gruppi di pianificazione

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

Illustra come usare i gruppi di pianificazione per creare affinità o raggruppare insieme le attività correlate. È ad esempio possibile che sia necessario un livello elevato di località tra le attività correlate, quando queste attività traggono vantaggio dall'esecuzione nello stesso nodo del processore.

Attività leggere

Illustra i vantaggi offerti dalle attività leggere nel creare il lavoro che non richiede il bilanciamento del carico o l'annullamento e nell'adattare il codice esistente per l'uso con il runtime di concorrenza.

Contesti

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

Procedura: Usare l'oversubscription per compensare la latenza

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

Funzioni di gestione della memoria

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

Illustra le funzioni di gestione della memoria offerte dal runtime di concorrenza che consentono di allocare e liberare memoria in modo simultaneo.

Modelli di programmazione asincrona e suggerimenti in Hilo (app di Windows Store scritte in C++ e XAML)

Informazioni su come è stato usato il runtime di concorrenza per implementare le operazioni asincrone in Hilo, un'app di Windows 8.x Store scritta in C++ e XAML.

Esempi di codice per la libreria di modelli in parallelo e di runtime di concorrenza in Visual Studio 2010

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

Blog della programmazione parallela del codice nativo

Fornisce altri articoli dettagliati del blog sulla programmazione in parallelo nel runtime di concorrenza.

Forum per la elaborazione parallela del codice nativo e C++

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

Parallel Programming in the .NET Framework

Illustra il modello di programmazione in parallelo disponibile in .NET Framework.

Mostra:
© 2016 Microsoft