Um processo é a representação de um programa, que fica isolada em uma memória da CPU. Um processo pode fazer a comunicação com outro processo, ter a etapa de I/O.
Uma thread é um "mini processo" que concorre de forma independente na cpu, porém que usa a mesma memória que o processo principal.
Ou seja, um processo pode ter 1 ou N threads que dividirão trabalhos para realizar tarefas simultaneamente, porém threads estão sucetíveis a race condition.
Também há concorrência entre processos, por isso que existe o Scheduler, onde um processo utiliza a CPU e quando esperar o I/O, um outro processo pode vir e utilizar a CPU.
Mas o Scheduler nem sempre espera o processo finalizar a tarefa, e pode acabar interrompendo o processo após um tempo que ele mesmo especula e adiciona esse processo a uma lista de espera junto com outros processos.
Pode existir um processo ou multi processos, uma thread ou multi threads, por isso é importante analisar o contexto de cada situação e a situação dos cores de uma CPU.
Top comments (0)