O que é uma thread? Qual a diferença básica entre uma thread e um processo?
Thread é uma "instância" que um processo abre para executar uma ou mais funções em paralelo. A
diferença básica entre um processo e uma thread é que apesar de no
Linux os dois serem reconhecidos
através de um PID (Identificador de Processo), o que torna uma thread conceitualmente também um
processo, é que as threads na verdade são filhas de um único processo pai e ficam escondidas das listagens
padrões do comando PS e TOP (comandos que mostram processos rodando no SO).
Uma das formas mais fáceis de visualizar as threads que estão rodando em um sistema Linux é através do
comando
top. Para ver as threads que estão sendo executadas nesse momento deve-se
executar este comando e quando a sua interface iniciar pressionar a tecla SHIFT e digitar H, ou seja
SHIFT+H (isso irá ativar a opção do top que mostra não só os processos como também seus threads).
Resumindo:
1. Execute o comando top:
# top
2. Pressione
Shift + h.
A outra forma de verificar as threads do Linux é através do comando "ps", mas que exige um pouco de
conhecimento para sua interpretação.
1. Execute o comando:
# ps -eLf
Isso mostrará na segunda coluna o PID do processo/thread e na terceira o PID do processo pai.
Se você quiser, para ver informações detalhadas sobre a thread acesse o diretório do PID dela cujo
caminho é "/proc/<PID>", onde o <PID> é o task/pid.