Por que usar threads?
Thread são seqüências de instrução que podem ser executadas em simultâneamente com outras threads. As threads vão compartilhar entre si recursos e memória de maneira direta.
Porque usar threads?
Em várias ocasiões o programa pode ficar bloqueado enquanto espera uma entrada do usuário ou um recurso de Entrada/Saída. Durante essa espera seu programa pode através de uma thread ir executando alguma outra computação.
Nos dias de hoje computadores de vários núcleos (multi-core) começam a se popularizar. Nesse tipo de processador seu programa pode executar algumas thread em um processador e outras em outro.
Um exemplo
Vamos colocar isso num exemplo. Suponha que você quer calcular o somatório i ao quadrado, variando de 0 até 5.

Figura 1 – Um somatório simples.
Que nada mais é que:

Figura 2 – Somatório expandido.
Algoritmo
Para computar isso podemos escrever um algoritmo assim:
sum = 0
for i de 0 até 5 faça
sum = sum + i*i
print sum
Programa 1 – Somatório simples em pseudo-código.
Quando executarmos isso, teremos:
55
Núcleo único
Ao executarmos esse programa num computador com um só processador simples ele é executado assim:

Animação 1 – Somatório serial em um único processador
Ou seja, primeiro o processador vai computar 0² depois 1² depois 2² assim por diante. O laço for é serial, ele vai ser sempre executado um passo de cada vez, sempre com um passo esperando o passo anterior terminar para executar o próximo.
Núcleo duplo
Se executarmos esse mesmo código em um sistema com um processador de dois núcleos por exemplo (dual-core), isso certamente irá acontecer:

Animação 2 – Um código serial sendo executado num processador de dois núcleos.
Um núcleo vai ficar ocioso enquanto o outro núcleo vai estar trabalhando. Se você comprou um processador de dois núcleos de 2Ghz achando que iria atingir um desempenho de 4Ghz, nesse momento você terá a sensação de estar usando numa máquina de 2 Ghz, pois só um processador de fato estará sendo usado.
Voltar ao índice principal deste artigo.



about 1 year ago
One of these days at my husband birthday.
Prompt what good gift it is possible to present to the husband?
about 9 months ago