Já vimos de forma sucinta, na unidade anterior, o conceito de thread, elemento utilizado como forma de reduzir o custo computacional decorrente das constantes trocas de contexto entre os processos. Além de evitar as trocas, uma outra necessidade que motivou a utilização deste instrumento é o fato de que, em determinadas situações, é desejável que tarefas executadas em paralelo tenham acesso a uma mesma área de memória como forma de tornar mais ágil a realização do trabalho necessário.
Em seu conceito tradicional, as threads são executadas dentro do contexto de um processo, que pode ser single-threaded ou multithreaded, ou seja, permitir a execução de apenas uma thread ou de múltiplas threads simultaneamente por processo.
Em ambientes multithreaded cada uma das threads compartilha o processador, da mesma forma que fazem os processos. Além disso, apesar de compartilharem a mesma área de memória, cada thread tem um contexto próprio de hardware. Em modelos single-threaded não há essa necessidade, já que não existe concorrência entre threads.
Outra similaridade do ambiente multithreaded com o esquema adotado nos processos é a existência do Bloco de controle da Thread (TCB), responsável por armazenar informações importantes em relação a thread, como o estado do processador, e em relação ao processo, como o espaço de endereçamento e os recursos disponíveis.