C# paralelo para cada um

C# paralelo para cada um
Neste artigo, estaremos focados no loop paralelo para cada um na linguagem de programação C#. A palavra paralela na programação C# vem do conceito de tarefas de rosqueamento, o que significa que, quando estamos executando mais de uma tarefa simultaneamente, podemos usar a biblioteca de tarefas de encadeamento para pedir a Tarefa Parallel Library para ficar paralelo, para que os loops de trabalho funcionem para funcionar sobre essas tarefas, pois são mais eficientes e menos demoradas em comparação com a seqüencial normal para e foreach loops. O loop paralelo de Foreach divide as tarefas e executa as iterações em mais de um fluxo para chegar ao objetivo final. O paralelo foreach é usado apenas quando um processo é iterativamente chamado de entrada e é co-dependente de outras operações, pois aumenta o ritmo dos processos.

Agora, realizaremos vários exemplos para esclarecer e aumentar a compreensão do loop paralelo de foreach na linguagem de programação C#.

Exemplo 01: Adicionando números a uma lista usando o loop paralelo de foreach no Ubuntu 20.04

Neste exemplo, escreveremos um programa C# para adicionar números a uma lista usando o loop paralelo para a foreach e marcar o número de threads simultaneamente atribuídos a cada etapa. Teremos que usar bibliotecas diferentes, como a tarefa de encadeamento e o link para acessar o monitoramento e a eficiência do paralelo para cada loop. Estaremos realizando este exemplo no Ubuntu 20.04 Ambiente.g

No código acima, geramos uma lista usando o paralelo para cada loop em que os números foram atribuídos à lista com a ajuda da função de intervalo. Em seguida, também imprimimos os IDs do thread a cada etapa para monitorar o número de threads usados ​​ao atribuir valores à lista. Depois de executar este arquivo de programa em nosso terminal de linha de comando, obteremos a seguinte saída:

A saída sugere que a lista foi atribuída 5 valores e, durante esse processo, foram usados ​​dois threads, o que criou uma diferença de tempo na execução desta tarefa. Se pudermos usar um simples loop seqüencial de foreach, a tarefa teria sido realizada em um único thread, e a execução seria maior que o tempo de execução do loop paralelo. Embora isso varie, pois depende do tamanho da tarefa em questão, pois o loop paralelo de forach é mais conveniente para o tamanho maior da tarefa e do processamento, porque divide a tarefa em vários threads e funciona na abordagem "dividir e conquistar".

Exemplo 02: Controlando o número de threads usando o loop paralelo de foreach no Ubuntu 20.04

Neste exemplo, estaremos controlando a criação do número de threads quando um loop paralelo foreach for executado. A Biblioteca de Threading de tarefas nos dá acesso a uma propriedade rotulada como “grau máximo de paralelismo” que controla as operações paralelas da classe de opções paralelas e atribuindo um valor a essa propriedade define o número de operações paralelas a serem executadas durante o programa. Esta propriedade é enviada para o loop paralelo para cada um em um argumento. Criaremos um programa C# para atribuir números a uma lista e definir o número de threads para executar esta tarefa.

Como podemos ver que o número total de threads usados ​​na execução desta tarefa era de apenas 2, pois corrigimos esse número atribuindo valor ao “grau máximo de paralelismo.”No caso de uma enorme quantidade de processamento de dados, podemos variar o valor atribuído ao grau máximo de paralelismo; Isso nos ajudará a dividir o poder de processamento de forma igual e eficiente entre as subtareas ou operações paralelas.

Exemplo 03: Lista de impressão com variáveis ​​de string usando o loop paralelo de foreach em um programa C# no Ubuntu 20.04

Neste exemplo, estaremos imprimindo itens de uma lista com variáveis ​​de string usando o loop paralelo de foreach em um programa C# no Ubuntu 20.04 Ambiente. Primeiro inicializaremos uma lista e atribuiremos valores manualmente e depois imprimiremos todos os seus elementos como saída usando o loop paralelo de foreach.

No código acima, fizemos uma lista chamada continentes e adicionamos nomes dos continentes à lista antes de usar o paralelo para cada loop. Adicionamos a biblioteca de tarefas de encadeamento para usar o loop paralelo para o nosso código. O método paralelo de foreach leva a lista e um novo objeto como um parâmetro para armazenar os valores temporariamente para cada iteração. Depois de executar este arquivo de código em nosso terminal da linha de comando, obteremos a lista dos nomes dos continentes que salvamos anteriormente em nossa lista.

Exemplo 04: Comparando o loop tradicional foreach com sequencial usando loop paralelo foreach em c# no ubuntu 20.04

Neste exemplo, estaremos comparando o loop tradicional de forach com sua propriedade seqüencial com o loop paralelo de foreach, fazendo uma tarefa semelhante com os dois loops. O tempo de execução de ambos os loops será diferente por causa de sua abordagem diferente da tarefa. Imprimiremos o conteúdo da lista, que será inicializado antes da operação, usando o loop tradicional de foreach com sua propriedade seqüencial e o paralelo para cada loop.

No programa C# acima, estamos usando um loop normal de foreach e um loop paralelo para cada e calcular o tempo necessário para executar a tarefa por ambos os loops; Usaremos a classe StopWatch da biblioteca "Diagnostics" da linguagem de programação C#. A classe StopWatch possui um método "startNew ()", que inicia o cronômetro, e a função decorrida () é usada para interromper o stopwatch. Ambas as funções foram acessíveis ao fazer um objeto da aula de parada.

A saída mostra que o loop tradicional de foreach levou menos tempo na execução da tarefa do que o paralelo de foreach loop. O motivo é que a execução da tarefa é mais adequada para uma única operação de threads, e criar vários tópicos para essa tarefa seria demorado, mas se a lista tivesse compreendido milhares de dados, o tempo de execução seria vice-versa Porque nesse cenário enfiar a tarefa seria eficiente e economizando tempo. Portanto, ao usar o loop paralelo para e cada um, temos que observar o tamanho do poder de processamento necessário para essa operação e considerar qual será o loop adequado para essa operação.

Conclusão:

Discutimos o loop paralelo para cada um na linguagem de programação C#. Neste artigo, foi discutido o significado do nome "paralelo", bem como as diferenças práticas entre um loop paralelo de forach e um loop padrão de forach. Em seguida, implementamos vários exemplos do loop paralelo de forach no Ubuntu 20.04 Ambiente para entender mais clareza sobre o tópico. Concluímos que o uso de um loop paralelo para e cada um deve ser monitorado durante a programação, pois pode ir de qualquer maneira devido ao seu mecanismo de rosqueamento; A tarefa está dividida, o que seria demorado no caso de uma tarefa menor.