Compartilhar via


Tempo de Execução de Simultaneidade

O tempo de execução de simultaneidade para C++ o ajudará a gravar robusto e escalonável e responsivos aplicativos paralelos. Ele aumenta o nível de abstração para que você não precisa gerenciar os detalhes de infra-estrutura relacionados à simultaneidade. Você também pode usá-la para especificar as diretivas de agendamento que atendem a qualidade das demandas de serviço de seus aplicativos. Use estes recursos para ajudá-lo a começar a trabalhar com o tempo de execução de simultaneidade.

Para obter documentação de referência, consulte Referência (Tempo de Execução de Simultaneidade).

Dica

O tempo de execução de simultaneidade depende muito de recursos do C++ 11 e adota o estilo C++ mais moderno.Para saber mais, leia Bem-vindo ao C++ (C++ moderno).

Escolhendo Recursos do Tempo de Execução de Simultaneidade

Visão geral do Tempo de Execução de Simultaneidade

Ensina por que o tempo de execução de simultaneidade é importante e descreve seus principais recursos.

Comparando o Tempo de Execução de Simultaneidade com outros modelos de simultaneidade

Mostra como o tempo de execução de simultaneidade se compara aos outros modelos de simultaneidade, como as janelas de pool de threads e OpenMP, para que você pode usar o modelo de simultaneidade que melhor atenda às suas necessidades de aplicativo.

Migrando de OpenMP no Tempo de Execução de Simultaneidade

Compara OpenMP no tempo de execução de simultaneidade e fornece exemplos sobre como migrar código OpenMP existente para usar o tempo de execução de simultaneidade.

Biblioteca de padrões paralelos (PPL)

Apresenta a PPL, que fornece loops paralelos, tarefas e contêineres paralelos.

Biblioteca de Agentes Assíncronos

Apresenta a você como usar agentes assíncronos e transmissão para incorporar facilmente o fluxo de dados e processamento de tarefas em seus aplicativos de mensagens.

Agendador de tarefas (Tempo de Execução de Simultaneidade)

Apresenta o Agendador de tarefas, que permite que você ajuste o desempenho de seus aplicativos de área de trabalho que usa o tempo de execução de simultaneidade.

Paralelismo da Tarefa na PPL

Paralelismo de tarefa (tempo de execução de simultaneidade)

Como usar parallel_invoke para escrever uma rotina de classificação em paralelo

Como usar parallel_invoke para executar operações em paralelo

Como criar uma tarefa que seja concluída após um atraso

Descreve as tarefas e grupos que podem ajudar você a escrever código assíncrono e decompor o trabalho paralelo em partes menores.

Instruções passo a passo: implementando futuros

Demonstra como combinar os recursos de tempo de execução de simultaneidade para fazer algo mais.

Instruções passo a passo: removendo trabalho de um thread de interface de usuário

Mostra como mover o trabalho executado pelo thread de interface do usuário em um aplicativo MFC para um thread de trabalho.

Práticas recomendadas na Biblioteca de Padrões Paralelos

Práticas recomendadas gerais no Tempo de Execução de Simultaneidade

Fornece dicas e práticas recomendadas para trabalhar com a PPL.

Paralelismo de Dados na PPL

Algoritmos paralelos

Como gravar um loop parallel_for

Como gravar um loop parallel_for_each

Como realizar operações de mapa e redução em paralelo

Descreve parallel_for, parallel_for_each, parallel_invoke, e outros algoritmos paralelos. Usar algoritmos paralelos para resolver dados paralelos problemas que envolvem coleções de dados.

Contêineres e objetos em paralelo

Como usar contêineres em paralelo para aumentar a eficiência

Como usar combinável para melhorar o desempenho

Como usar combinável para combinar conjuntos

Descreve o combinable classe, bem como concurrent_vector, concurrent_queue, concurrent_unordered_map, e outros contêineres paralelos. Use objetos e contêineres paralelos quando precisar contêineres que fornecem acesso thread-safe para seus elementos.

Práticas recomendadas na Biblioteca de Padrões Paralelos

Práticas recomendadas gerais no Tempo de Execução de Simultaneidade

Fornece dicas e práticas recomendadas para trabalhar com a PPL.

Cancelando Tarefas e Algoritmos Paralelos

Cancelamento no PPL

Descreve a função de cancelamento no PPL, incluindo como iniciar e responder a solicitações de cancelamento.

Como usar cancelamento para parar um loop paralelo

Como usar tratamento de exceções para parar um loop paralelo

Demonstra duas maneiras para cancelar o trabalho de paralelismo de dados.

Aplicativos da Windows Store

Criando operações assíncronas n C++ para aplicativos da Windows Store

Descreve alguns dos principais pontos para ter em mente ao usar o tempo de execução de simultaneidade para gerar operações assíncronas em uma Windows Store aplicativo.

Instruções passo a passo: conexão usando tarefas e solicitações HTTP XML

Mostra como combinar tarefas PPL com o IXMLHTTPRequest2 e IXMLHTTPRequest2Callback interfaces para enviar solicitações HTTP GET e POST para um serviço da web em um Windows Store aplicativo.

Exemplos de aplicativos da Windows Store

Contém exemplos de código para download e demonstração aplicativos para Windows 8. Os exemplos de C++ usam recursos de tempo de execução de simultaneidade, como tarefas PPL para processar dados em segundo plano para manter a experiência do usuário responsiva.

Programação do Fluxo de Dados na Biblioteca de Agentes Assíncrona

Agentes assíncronos

Blocos de mensagens assíncronos

Funções de transmissão de mensagem

Como implementar vários padrões de produtor-consumidor

Como fornecer funções de trabalho para as classes call e transformer

Como usar transformador em um pipeline de dados

Como selecionar tarefas concluídas

Como enviar uma mensagem em um intervalo regular

Como usar um filtro de bloco de mensagens

Descreve as funções de transmissão de mensagens, que são os blocos de construção para executar operações de fluxo de dados no tempo de execução de simultaneidade de agentes assíncronos e blocos de mensagens.

Instruções passo a passo: criando um aplicativo com base no agente

Instruções passo a passo: criando um agente de fluxo de dados

Mostra como criar aplicativos baseados em agente básicos.

Instruções passo a passo: criando uma rede de processamento de imagem

Mostra como criar uma rede de blocos de mensagens assíncronas que executam o processamento de imagem.

Instruções passo a passo: usando join para Evitar Deadlock

Usa o problema filósofos jantar para ilustrar como usar o tempo de execução de simultaneidade para evitar o deadlock em seu aplicativo.

Instruções passo a passo: criando um bloco de mensagens personalizado

Mostra como criar um tipo de bloco de mensagem personalizada que ordena as mensagens recebidas por prioridade.

Práticas recomendadas na Biblioteca de Agentes Assíncrona

Práticas recomendadas gerais no Tempo de Execução de Simultaneidade

Fornece dicas e práticas recomendadas para trabalhar com os agentes.

Tratamento de Exceção e Depuração

Tratamento de exceções no tempo de execução de simultaneidade

Descreve como trabalhar com exceções em tempo de execução de simultaneidade.

Ferramentas de diagnóstico em paralelo (Tempo de Execução de Simultaneidade)

Ensina a ajustar seus aplicativos e fazer o uso mais eficiente do tempo de execução de simultaneidade.

Ajustando Desempenho

Ferramentas de diagnóstico em paralelo (Tempo de Execução de Simultaneidade)

Ensina a ajustar seus aplicativos e fazer o uso mais eficiente do tempo de execução de simultaneidade.

Instâncias de agendador

Como gerenciar uma instância de agendador

Políticas de agendador

Como especificar políticas de agendador específicas

Como cria agentes que usam políticas de agendador específicas

Mostra como trabalhar com o gerenciar instâncias de agendador e políticas de Agendador. Para aplicativos de desktop, políticas de Agendador permitem associar regras específicas de tipos específicos de cargas de trabalho. Por exemplo, você pode criar uma instância de Agendador para executar algumas tarefas com uma prioridade de thread com privilégios elevados e usar o agendador padrão para executar outras tarefas com a prioridade normal de threads.

Grupos de agendas

Como usar grupos de agendas para influenciar a ordem de execução

Demonstra como usar grupos de agendamento para relacionar ou agrupar, tarefas relacionadas. Por exemplo, você pode exigir um alto grau de localidade entre tarefas relacionadas quando essas tarefas se beneficiar da execução no mesmo nó do processador.

Tarefas leves

Explica como simples tarefas são úteis para a criação de trabalho que não exigem o balanceamento de carga ou cancelamento e como eles também são úteis para adaptar o código existente para uso com o tempo de execução de simultaneidade.

Contextos

Como usar a classe de contexto para implementar um semáforo cooperativo

Como usar excesso de assinatura para deslocar latência

Descreve como controlar o comportamento dos threads que são gerenciados pelo tempo de execução de simultaneidade.

Funções de gerenciamento da memória

Como usar Alloc e Free para melhorar o desempenho da memória

Descreve as funções de gerenciamento de memória que fornece o tempo de execução de simultaneidade para ajudá-lo a alocar e liberar memória, de forma simultânea.

Recursos adicionais

Padrões de programação assíncrona e dicas do Hilo (aplicativos da Windows Store usando C++ e XAML)

Saiba como usamos o tempo de execução de simultaneidade para implementar operações assíncronas em Hilo, um Windows Store aplicativo usando C++ e XAML.

Amostras de código para o tempo de execução de simultaneidade e a biblioteca de padrão paralelo no Visual Studio 2010

Fornece exemplos de aplicativos e utilitários que demonstram o tempo de execução de simultaneidade.

a programação paralela no blog de código nativo

Fornece artigos de blogs detalhadas adicionais sobre programação paralela em tempo de execução de simultaneidade.

a computação paralela em C++ e o código nativo fórum

Permite que você participe de discussões da comunidade sobre o tempo de execução de simultaneidade.

Programação paralela no .NET Framework

Ensina o modelo de programação paralelo que está disponível na .NET Framework.

Consulte também

Outros recursos

Referência (Tempo de Execução de Simultaneidade)