Baixe o app para aproveitar ainda mais
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.
Compartilhar