Está en la página 1de 2

1/1

Motivao para o uso de threads



Imagine a seguinte situao:

Precisamos armazenar os tijolos produzidos por um equipamento que, ao
trmino da fabricao de um tijolo, espera que haja algum no final da esteira
para peg-lo.

Se o procedimento de pegar o tijolo e lev-lo at o depsito for feito por
uma nica pessoa, provavelmente diversos tijolos caram no cho enquanto essa
pessoa leva um dos tijolos para o depsito.

O que fazer? Se houver uma pessoa que fique na sada da esteira
retirando os tijolos e os entregando para seus assistentes, a chance de que um
tijolo caia no cho ser muito reduzida, pois cada tijolo ser entregue em um
perodo de tempo constante ao assistente que o levar ao depsito. O
encarregado de pegar os tijolos est a postos em um tempo conhecido,
permitindo, assim, calibrar o equipamento.

Pode haver muitos assistentes congestionando o caminho? Sim,
identificando que o caminho no suficiente para a demanda.

Pensando agora em uma aplicao, como um servidor para transferncias
de arquivos. Uma thread fica a postos para receber requisies que sero
entregues a novas threads criadas sob demanda para atender a cada uma das
requisies. A cada requisio, uma nova thread criada e a thread principal
retorna imediatamente para aguardar novas requisies, evitando (ou reduzindo
muito) o descarte de mensagens. Poderemos ter vrias threads sendo
executadas concorrentemente, podendo gerar um tempo de resposta maior, mas
as requisies no sero perdidas.

S para registrar: esse tipo de servidor chamado de servidor
concorrente.







2/3



As threads contribuem para o melhor uso dos recursos com:

Melhor aproveitamento da fatia de tempo - Permite que a execuo do
processo continue mesmo que algumas de suas Threads estejam bloqueadas.

Compartilhamento de Recursos - Threads compartilham memria e outros
recursos do processo.

Economia de tempo de gerenciamento - Threads so mais econmicas de
serem criadas e o custo da troca de contexto menor. Todas as threads de um
mesmo processo compartilham o mesmo espao de endereamento.

Utilizao de Mltiplos Processadores - Cada Thread pode ser executada em
paralelo em um processador distinto.

También podría gustarte