DEV Community

mylena
mylena

Posted on

Threads e Processos

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.

Representação de um processo e thread. Uma thread faz parte de um processo

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.

Exemplificação de um processo e multi processos

Exemplificação de um thread e multi threading

Top comments (0)