Thread vs Process
Processo
No mundo da programação de computadores, um processo é uma instância ou execução de um programa. Todo processo contém um código de programa e a atividade existente. Pode haver mais de um thread que pode compor um processo específico. As instruções podem ser executadas simultaneamente. No entanto, isso dependerá do sistema operacional que está sendo usado.
Basicamente, os processos são programas fortemente substanciais. Eles consomem quantidades consideráveis de memória. Portanto, eles dependem muito dos recursos disponíveis para execução. Dito tudo isso, um processo é conhecido por ser um "processo pesado".
Todo processo ocorre em um local de memória diferente. Portanto, se houver mais processos presentes, a alternância entre cada processo é muito cara, pois levará tempo de cada alocação de memória para alternar para outra alocação. Cada processo possui seu próprio espaço de endereçamento, que pode consumir quantidades substanciais de suprimentos.
Um processo é independente de outros processos. Portanto, quando um processo pai é modificado, isso não afeta necessariamente outros processos. Devido a esse comportamento, os processos requerem comunicação entre processos para que eles possam se comunicar com seus irmãos.
Além disso, os processos, devido à sua natureza muito mais complexa, não são criados com facilidade. Isso pode exigir alguma duplicação de processos, geralmente processo pai, para alcançar a construção.
Fio
Mesmo com recursos mínimos do sistema, os threads podem ser executados simultaneamente para atingir uma tarefa especificada. O motivo é o fato de um encadeamento ser apenas uma sequência de execução. É apenas dentro de um processo e é por isso que também é chamado de "processo leve".
É considerada a menor parte de um programa, pois é um caminho de execução seqüencial independente dentro de um programa. A alternância de contexto entre os segmentos requer quantidades mínimas de recursos, diferentemente dos processos. Os threads, em essência, compartilham espaços de endereço e também são facilmente criados.
Também deve ser mencionado que as alterações feitas no thread principal podem afetar o comportamento dos outros threads no mesmo processo. Aparentemente, a comunicação entre threads no mesmo processo é direta e contínua.
Resumo:
1. Um processo pode conter mais de um encadeamento.
2. Um processo é considerado "pesado", enquanto um encadeamento é considerado "leve".
3. Os processos dependem fortemente dos recursos do sistema disponíveis, enquanto os encadeamentos exigem quantidades mínimas de recursos.
4. A modificação de um encadeamento principal pode afetar os encadeamentos subsequentes, enquanto as alterações no processo pai não afetam necessariamente os processos filhos.
5. Threads dentro de um processo se comunicam diretamente enquanto processos não se comunicam tão facilmente.
6. Os threads são fáceis de criar, enquanto os processos não são tão simples.