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.