Como cada thread pode ter acesso a qualquer endereço de memória dentro do espaço de endereçamento do processo, uma thread pode ler, escrever ou até mesmo apagar completamente a pilha de outra thread. Portanto, não existe qualquer tipo de proteção entre as threads de um mesmo processo. Já no caso de processos diversos, essa proteção é uma consequência natural de seu espaço de endereçamento separado.
Além disso, as threads também possuem estados de execução, assim como os processos, o que significa que uma thread pode estar nos estados de running, ready ou blocked.
É importante salientar, que, no caso da máquina virtual Java, a implementação de threads da referida tecnologia possui mais dois estados que são:
Na próxima etapa do nosso estudo, será mostrado esse diagrama com os cinco estados de uma thread para a JVM.
A tabela abaixo lista, na primeira coluna, alguns itens compartilhados por todas as threads em um mesmo processo, enquanto que a segunda coluna lista alguns itens específicos a cada thread.
| Itens por Processo | Itens por Thread |
|---|---|
| Espaço de endereçamento | Contador de programa |
| Variáveis globais | Registradores |
| Arquivos abertos | Pilha |
| Processos Filhos | Estado |
| Alarmes pendentes | |
| Sinais e seus manipuladores |