Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Concurrency Runtime for C++ ajuda você a escrever aplicativos paralelos robustos, escaláveis e responsivos. Ele aumenta o nível de abstração para que você não precise gerenciar os detalhes da infraestrutura relacionados à simultaneidade. Você também pode usá-lo para especificar políticas de agendamento que atendam às demandas de qualidade de serviço de seus aplicativos. Use estes recursos para ajudá-lo a começar a trabalhar com o Concurrency Runtime.
Para obter documentação de referência, consulte Referência.
Sugestão
O Concurrency Runtime depende muito dos recursos do C++11 e adota o estilo C++ mais moderno. Para saber mais, leia Bem-vindo de volta ao C++.
Escolhendo Funcionalidades de Tempo de Execução de Concorrência
Artigo | Descrição |
---|---|
Descrição geral | Ensina por que o Concurrency Runtime é importante e descreve seus principais recursos. |
Comparando com os outros modelos de concorrência | Mostra como o Concurrency Runtime se compara a outros modelos de simultaneidade, como o pool de threads do Windows e o OpenMP, para que você possa usar o modelo de simultaneidade que melhor se adapta aos requisitos do seu aplicativo. |
Migrando do OpenMP para o Concurrency Runtime | Compara o OpenMP com o Concurrency Runtime e fornece exemplos sobre como migrar o código OpenMP existente para usar o Concurrency Runtime. |
Biblioteca de Padrões Paralelos (PPL) | Apresenta o PPL, que fornece loops paralelos, tarefas e contêineres paralelos. |
Biblioteca de agentes assíncronos | Apresenta como usar agentes assíncronos e passagem de mensagens para incorporar facilmente tarefas de fluxo de dados e pipelining em seus aplicativos. |
Agendador de Tarefas | Apresenta o Agendador de Tarefas, que permite ajustar o desempenho das suas aplicações de desktop que usam o Runtime de Concurrency. |
Paralelismo de Tarefas no PPL
Artigo | Descrição |
---|---|
Paralelismo de tarefas Como: Usar parallel_invoke para escrever uma rotina de classificação paralela Como: Usar parallel_invoke para executar operações paralelas Como: Criar uma tarefa que é concluída após um atraso |
Descreve tarefas e grupos de tarefas, que podem ajudá-lo a escrever código assíncrono e decompor o trabalho paralelo em partes menores. |
Passo a passo: Implementando futuros | Demonstra como combinar recursos de Concurrency Runtime para fazer algo mais. |
Passo a passo: Removendo o trabalho de um thread User-Interface | Mostra como mover o trabalho que é executado pelo thread da interface do usuário em um aplicativo MFC para um thread de trabalho. |
Práticas recomendadas na biblioteca de padrões paralelos Boas práticas gerais no runtime de simultaneidade |
Fornece dicas e melhores práticas para trabalhar com o PPL. |
Paralelismo de Dados no PPL
Artigo | Descrição |
---|---|
Algoritmos paralelos Como Escrever um Loop parallel_for Como escrever um loop parallel_for_each Como realizar operações de Map e Reduce em paralelo |
Descreve parallel_for , parallel_for_each , parallel_invoke , e outros algoritmos paralelos. Use algoritmos paralelos para resolver problemas paralelos de dados que envolvem coletas de dados. |
Contêineres e objetos paralelos Como: Usar contêineres paralelos para aumentar a eficiência Como: Usar combináveis para melhorar o desempenho Como: Usar combináveis para combinar conjuntos |
Descreve a combinable classe, bem como concurrent_vector , concurrent_queue , concurrent_unordered_map e outros contêineres paralelos. Use contêineres e objetos paralelos quando precisar de contêineres que forneçam acesso thread-safe a seus elementos. |
Práticas recomendadas na biblioteca de padrões paralelos Boas práticas gerais no runtime de simultaneidade |
Fornece dicas e melhores práticas para trabalhar com o PPL. |
Cancelando tarefas e algoritmos paralelos
Artigo | Descrição |
---|---|
Cancelamento no PPL | Descreve o papel do cancelamento no PPL, incluindo como iniciar e responder a pedidos de cancelamento. |
Como: Usar o cancelamento para interromper um loop paralelo Como usar o tratamento de exceção para interromper um ciclo paralelo |
Demonstra duas maneiras de cancelar a computação paralela de dados. |
Aplicativos da Plataforma Universal do Windows
Artigo | Descrição |
---|---|
Criando operações assíncronas em C++ para aplicativos UWP | Descreve alguns dos pontos-chave a ter em mente ao usar o Concurrency Runtime para produzir operações assíncronas em um aplicativo UWP. |
Passo a passo: Conectando-se usando tarefas e solicitações HTTP XML | Mostra como combinar as interfaces IXMLHTTPRequest2 e IXMLHTTPRequest2Callback com tarefas PPL para enviar solicitações HTTP GET e POST para um serviço web numa aplicação UWP. |
Exemplos de aplicações do Ambiente de Execução do Windows | Contém exemplos de código baixáveis e aplicativos de demonstração para o Tempo de Execução do Windows. |
Programação de fluxo de dados na biblioteca de agentes assíncronos
Tratamento de exceções e depuração
Artigo | Descrição |
---|---|
Tratamento de exceções | Descreve como trabalhar com exceções no Concurrency Runtime. |
Ferramentas de diagnóstico paralelas | Ensina como ajustar seus aplicativos e fazer o uso mais eficaz do Concurrency Runtime. |
Ajustando o desempenho
Artigo | Descrição |
---|---|
Ferramentas de diagnóstico paralelas | Ensina como ajustar seus aplicativos e fazer o uso mais eficaz do Concurrency Runtime. |
Instâncias do Agendador Como gerenciar uma instância do Scheduler Políticas do Scheduler Como: Especificar políticas específicas do agendador Como criar agentes que usam políticas específicas de agendamento |
Mostra como trabalhar na gestão de instâncias de agendador e políticas de agendamento. Para aplicativos de área de trabalho, as políticas do agendador permitem associar regras específicas a tipos específicos de cargas de trabalho. Por exemplo, você pode criar uma instância do agendador para executar algumas tarefas com uma prioridade de thread elevada e usar o agendador padrão para executar outras tarefas com a prioridade de thread normal. |
Agendar Grupos Como: Usar grupos de agendamento para influenciar a ordem de execução |
Demonstra como usar grupos de agendamento para afinar, ou agrupar, tarefas relacionadas juntas. Por exemplo, você pode exigir um alto grau de localidade entre as tarefas relacionadas quando essas tarefas se beneficiam da execução no mesmo nó do processador. |
Tarefas leves | Explica como tarefas leves são úteis para criar trabalho que não requer balanceamento de carga ou cancelamento e como elas também são úteis para adaptar o código existente para uso com o Concurrency Runtime. |
Contextos Como: Usar a classe de contexto para implementar um semáforo cooperativo Como usar a sobresubscrição para compensar a latência |
Descreve como controlar o comportamento dos threads que são gerenciados pelo Concurrency Runtime. |
funções de gerenciamento de memória Como: Usar Alloc e Free para melhorar o desempenho da memória |
Descreve as funções de gerenciamento de memória que o Concurrency Runtime fornece para ajudá-lo a alocar e liberar memória de maneira simultânea. |
Recursos adicionais
Artigo | Descrição |
---|---|
Padrões de programação assíncrona e dicas no Hilo (aplicativos da Windows Store em C++ e XAML) | Saiba como usamos o Tempo de Execução de Simultaneidade para implementar operações assíncronas no Hilo, um aplicativo do Tempo de Execução do Windows em C++ e XAML. |
Blog Programação Paralela em Código Nativo | Fornece artigos de blog adicionais detalhados sobre programação paralela no Concurrency Runtime. |
Fórum Computação paralela em C++ e código nativo | Permite que você participe de discussões da comunidade sobre o Concurrency Runtime. |
Programação paralela | Ensina sobre o modelo de programação paralela que está disponível no .NET Framework. |