Definição de Thread
Um pequeno programa que trabalha como um sub-sistema independente de um programa maior, executando alguma tarefa especÃfica. Um programa dividido em vários threads pode rodar mais rápido que um programa monolÃtico, pois várias tarefas podem ser executadas simultaneamente. Os vários threads de um programa podem trocar dados entre sà e compartilhar o mesmo espaço de memória e os mesmos recursos do sistema.
Para o programador, existem vantagens e desvantagens em dividir um programa em vários threads. Por um lado isso facilita o desenvolvimento, pois é possÃvel desenvolver o programa em módulos, testando-os isoladamente, ao invés de escrever um único bloco de código. Mas, por outro lado, com vários threads o trabalho torna-se mais complexo, devido à interação entre eles.
Existem diferenças na maneira como os sistemas operacionais executam processos e threads. Por exemplo, o Windows têm mais facilidade para gerenciar programas com apenas um processo e vários threads, do que com vários processos e poucos threads, pois Windows o tempo para criar um processo e alternar entre eles é muito grande. O Linux e outros sistemas baseados no Unix por sua vez é capaz de criar novos processos muito rápido, o que explica o fato de alguns aplicativos, como por exemplo o Apache, rodarem muito mais rápido no Linux do que no Windows, ao serem portados para ele. Porém, ao serem alterados, os mesmos programas podem apresentar um desempenho semelhante nos dois sistemas. É o que a equipe do apache vem procurando fazer nas versões atuais do programa. Veja também: Processo e Hyperthreading