Uma introdução ao uso de Threads – Parte I - Revista MSDN Magazine Edição 33

Neste artigo vou explicar na prática, como funciona e como criar linhas de processamento em um aplicativo.

Clique aqui para ler todos os artigos desta edição

 

Uma introdução ao uso de Threads – Parte I
Por Roberto Lopes

Leia a Parte II.

 

O Windows, por ser um sistema operacional multitarefa, é capaz de executar várias tarefas ao mesmo tempo. Isso quer dizer que você pode, por exemplo, escrever um documento no Word enquanto faz o backup de sua máquina, tudo ao mesmo tempo. Se você nunca desenvolveu em um sistema operacional não multitarefa (DOS, por exemplo), pode estar achando isso óbvio, mas saiba que não é. No DOS, por exemplo, não é possível executar dois programas ao mesmo tempo (escrever um arquivo em um editor de textos enquanto faz o backup da sua máquina).

Na prática, o DOS não é capaz de executar mais de um programa ao mesmo tempo justamente por não poder gerenciar mais de uma linha de execução ao mesmo tempo, lembrando que thread vem do termo “linha de execução” (Thread of execution em inglês).

Você não vai precisar criar novas threads em todos os seus aplicativos, mas dependendo do tipo de aplicativo que você esteja escrevendo, o uso de threads pode ser altamente recomendável. Neste artigo vou explicar na prática, como funciona e como criar linhas de processamento em um aplicativo.

Entendendo como uma Thread funciona

Um processador não é capaz de processar mais de uma instrução ao mesmo tempo, isso é, se ele tem duas instruções para executar em sua fila, ele vai executar primeiro uma e depois a outra. Porém, ele é capaz de trabalhar com mais de uma linha de execução ao mesmo tempo. Cada linha de execução possui sua própria fila de instruções para serem executadas. O processador então executa uma instrução de cada linha de execução consecutivamente, fazendo com que o processador “pareça” estar executando mais de uma instrução ao mesmo tempo.

Um exemplo. Digamos que criamos um aplicativo que executa dois processamentos simultaneamente, chamados A e B. Digamos ainda que ambos possuem em cada um, cinco instruções a serem executadas e essas instruções tenham um número seqüencial crescente (para o processo A seria: A1, A2, A3, A4 e A5. O processo B seria: B1, B2, B3, B4 e B5).

Veja na Figura 1 a representação gráfica do resultado desse processamento em um aplicativo não multitarefa.

 

Figura 1. Exemplo de processamento não multitarefa

" [...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados