Buscar

Threads: Dividindo tarefas para maior desempenho

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Threads 
 
Threads são pequenos programas que trabalham dentro de outros programas, como 
se o processo de dividisse em duas ou mais tarefas, essas tarefas podem ser 
divididas para que se alcance uma maior velocidade de processamento, sendo que 
estas podem ser executadas simultaneamente, os threads podem compartilhar 
dados e informações entre si e compartilhar os recursos do sistema , desta forma 
pode-se aumentar o desempenho. Cada thread possui seu próprio contador de 
programa. 
Existem dois tipos que são o Monothread, onde este é usado em ambiente que se 
permite apenas um thread, onde não há paralelismo onde o possui chamadas de 
sistemas bloqueantes, e o Multithread, que é usada em ambiente que se permitem 
várias threads. 
Uma das vantagens dos threads é que , como os mesmos são mais leves do que os 
processos estes são mais fáceis de serem criados e destruídos do que os 
processos, onde em muitos sistemas criar um thread é algo de 10 a 100 vezes mais 
rápido do que criar um processo, outra vantagem é que eles não deixam o processo 
parado pois neste caso sempre tem um thread trabalhando. 
Threads são úteis em sistemas com múltiplas CPUs, onde o paralelismo real é 
possível. 
Temos os threads Posix, onde o IEEE definiu um padrão onde o pacote de threads 
que ele define é chamado de Pthreads. 
Há dois lugares possíveis para se implantar uma thread no espaço do usuário e no 
espaço do núcleo, onde no primeiro método é colocar o pacote de threads 
inteiramente no espaço do usuário, o núcleo não sabe nada a respeito deles, até 
onde o núcleo sabe ele está gerenciando processos comuns de um único thread. Já 
no espaço do núcleo, o núcleo sabe sobre os threads e os gerencia, neste o núcleo 
tem uma tabela que controla todos os threads do sistema, quando um thread quer 
criar um novo ou destruir um existente ele faz uma chamada de núcleo. 
Existem também as implementações híbridas onde se usam os threads no núcleo e 
então multiplexar os de usuário em alguns ou todos eles. Podemos verificar também 
os threads pop-up, que são como mensagens que chegam como por exemplo, 
requisições de serviços. 
Por fim é possível ser feita a conversão de um código monothread para multithread, 
já que muitos programas existentes foram escritos para processos monothread, 
convertê-los para multithreading é muito mais complicado do que pode parecer a um 
primeiro momento sendo assim tem um detalhamento maior e um relativo trabalho.

Continue navegando