Threads, processos, deadlock e race condition no contexto de concorrência e paralelismo
Navegando pelas redes sociais, você muito provavelmente já se deparou com aqueles quizzes “10 perguntas que todo formando em computação deveria saber responder”. Uma das perguntas que eu mais vejo ...

Source: DEV Community
Navegando pelas redes sociais, você muito provavelmente já se deparou com aqueles quizzes “10 perguntas que todo formando em computação deveria saber responder”. Uma das perguntas que eu mais vejo aparecer nesses questionários é: qual é a diferença entre uma thread e um processo? Você teria essa resposta na ponta da língua? Eu achava que sim até aprofundar minha leitura no assunto. “Imaginando uma bebida, o processo seria o líquido e a thread seria o canudo”. Esta é a analogia que mais fazem ao tentar responder à pergunta. No entanto, eu não acredito que ela relaciona os termos de forma adequada. Isto porque a hierarquia dos termos na analogia está invertida: não são as threads que “contêm os processos”, mas o processo é quem contém as threads. Uma analogia mais apropriada seria a de que o processo é a fábrica, com seus maquinários e certificações de segurança, enquanto a thread seria o operador, a unidade de execução que desempenha suas funções em cima dos recursos que a fábrica reser