Task Parallel Library - Parte 1

watch_later 10 de set de 2017
Introdução ao Paralelismo com .NET




Nesta seção de postagens irei falar sobre os recursos de programação paralela do .NET  que foi inserido à partir do framework 4.0, especificamente a Biblioteca Task Paralelas em inglês (TPL Task Parallel Library), e LINQ paralelo e a legião de classes de suporte que fazem a escrita de programas paralelos com C # mais simples e fácil do que nunca. Eu tenho utilizado o TPL, e posso dizer honestamente que tem sido impressionante o ganho de performance e a simplificidade, ela é útil e bem pensada. Com o uso generalizado de computadores multiprocessador e multicore, a programação paralela passou a ser adotada em grande escala, e agora chegamos na era dos celulares multiprocessador e multicore, nossa tendência de desenvolvimento  cada vez mais deve adotar o conceito.



A Microsoft respondeu à necessidade de uma melhor maneira de escrever programas paralelos com os aprimoramentospara o framework .NET que irei descrever.O .NET teve suporte para programação paralela desde a versão 1.0, agora conhecida como clássica threading , em inglês (Classic Threading), mas foi difícil de usar e fez você pensar muito em gerenciar os aspectos paralelos de seus programas, o que prejudica o foco no que precisa ser feito.Os novos recursos de programação paralela .NET são construídos em cima do suporte clássico de threading, a diferença entre o TPL e o Clássico torna-se aparente quando se considera o básico unidade de programação de cada uma.


Modelo Clássico


No modelo clássico, o programador usa threads e elas são a engine de execução, e você é responsável por criá-los, atribuir-lhes o trabalho e gerenciar sua existência. O modelo de threading clássico é orientado para o trabalho,


Modelo TPL


 A unidade básica do TPL é a Task, que descreve algo que você deseja fazer. Você cria tasks para cada atividade que você quer executar, e o TPL cuida da criação de tópicos e lida com eles enquanto eles realizam o trabalho em suas tarefas. O TPL é orientado para tasks. 


Uma nova abordagem


As Task's permitem que você se concentre principalmente no problema que você deseja resolver em vez da mecânica de como isso será feito. Se você tentou a utilizar programação paralela com model clássico e desistiu, você encontrará os verá que os novos recursos possuem uma abordagem simples e habilitadosa. 

Você pode usar os novos recursos sem ter que parar e saber qualquer coisa sobre os model clássico. Você também descobrirá que os novos recursos são foram pensados de uma maneira melhor e mais fácil de usar.Como eu disse, o modelo de threading clássico ainda está lá, mas o TPL cuida disso para você. Os tópicos são criado e usado para executar uma ou mais de suas tasks , tudo sem que você tenha que prestar atenção aos detalhes sobre como isso acontece. O processo é muito legal e faz programação paralela ser muito mais agradável e produtiva.

Outras postagens da sessão

Parte 2- Quais tópicos falaremos
Parte 3- Quando utilizar paralelismo
Parte 4- hello world

mais em breve...