Pular para o conteúdo

Thread e Processos – Quais as diferenças

Thread e Processos - Quais as diferenças
Thread e Processos - Quais as diferenças

De forma a ajudá-lo a compreender quais as diferenças entre Thread e Processos, resolvemos escrever esta matéria. Muitas são as dúvidas que vão surgindo relativamente a esta questão. Esperamos conseguir explicar-lhe da melhor forma essas diferenças.

O que é um Thread?

O Thread ou Linha ou Encadeamento de execução é a forma de um processo dividir-se a si mesmo em duas ou mais tarefas, que podem ser executadas em simultâneo. Uma thread permite, exemplificando que o utilizador de um programa utilize uma funcionalidade do ambiente de trabalho enquanto outras linhas de execução realizam outros cálculos e operações. As threads também podem utilizar o mesmo espaço de memória pertencentes a um determinado processo.

Os sistemas que suportam uma única thread são chamados de monothread, enquanto os sistemas que suportam múltiplas são chamados de multithread.

Veja também:

File System – O que é o sistema de arquivos

Partições MBR e GPT – o que são?

5 situações em que a Internet das Coisas poderá facilitar a sua vida

Normalmente as threads são divididas em duas categorias:

  • ULT (User Level Thread )

    – Thread ao Nível de Utilizador (são escalonadas pelo programador, tendo a grande vantagem de cada processo usar um algoritmo de escalonamento que melhor se adapte à questão. O sistema operativo neste tipo de thread não faz o escalonamento, pois normalmente nem sabe que elas existem. Neste modo, o programador é responsável por criar, executar, escalonar e destruir a mesma).

  • KLT (Kernel Level Thread)

    – Thread ao Nível do Núcleo – (são escalonadas diretamente pelo sistema operativo, e são mais lentas que as ULT pois a cada chamada elas necessitam consultar o sistema, exigindo assim a mudança total de contexto do processador, memória e outros níveis necessários para alternar um processo).

O que é um processo?

Processo pode ser definido como um programa de computador em execução, no entanto em sistemas operativos, processo é um módulo executável único, que corre concorrentemente com outros módulos executáveis. Por exemplo, em um ambiente multi-tarefa (ex: Unix) que suporta processos, um processador de texto, um navegador e um sistema de banco de dados são processos separados que podem operar simultaneamente.

Processos são módulos separados e carregáveis, ao contrário de threads, que não podem ser carregadas. Múltiplas threads de execução podem ocorrer dentro de um mesmo processo. Além das threads, o processo também inclui certos recursos, como arquivos e alocações dinâmicas de memória e espaços de endereçamento.

Um processo pode ter vários estados, sendo eles:

  • New: processo está a ser criado
  • Running: instruções do processo quando está em execução
  • Waiting: processo está à espera da ocorrência de algum evento
  • Terminated: processo terminou a execução

Estas são as principais diferenças entre Thread e Processos, esperamos ter conseguir esclarecer as suas dúvidas sobre estes temas. No entanto se tiver alguma dúvida deixe aqui a sua questão que tentaremos esclarece-lo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Nós usamos cookies e outras tecnologias, conforme nossa Política de Privacidade, para você ter a melhor experiência ao usar o nosso site. Ao continuar navegando, você concorda com essas condições.