Simultaneidade VS Paralelismo
Simultaneidade refere-se à capacidade de um programa ou sistema de executar várias tarefas simultaneamente ou ao mesmo tempo. Isso pode ser obtido de várias maneiras, incluindo o uso de vários núcleos de CPU, vários processos ou vários threads em um único processo. A simultaneidade pode ser útil para melhorar o desempenho e a eficiência de certos tipos de programas, como aqueles que executam tarefas de longa duração ou envolvem muita espera.
O que é paralelismo?
O paralelismo, por outro lado, refere-se à capacidade de executar várias tarefas simultaneamente, geralmente usando vários núcleos de CPU. O paralelismo é uma forma de simultaneidade, mas requer o uso de hardware especializado, como um processador multi-core, para obter uma verdadeira execução simultânea.
Diferença
A diferença crucial entre simultaneidade e paralelismo é que a simultaneidade trata de lidar com muitas coisas ao mesmo tempo (dá a ilusão de simultaneidade) ou lidar com eventos simultâneos essencialmente ocultando a latência. Pelo contrário, o paralelismo consiste em fazer muitas coisas ao mesmo tempo para aumentar a velocidade. Portanto, em poucas palavras, a simultaneidade permite que várias tarefas estejam em andamento ao mesmo tempo, mas não necessariamente em execução ao mesmo tempo. O paralelismo, por outro lado, exige que várias tarefas sejam executadas simultaneamente.
Exemplo
Imagine que você está administrando um restaurante e tem as seguintes tarefas a realizar:
- Cozinhe a comida
- Sirva a comida aos clientes
- Lava os pratos
No entanto, se você contratar funcionários adicionais, poderá dividir as tarefas entre eles e executar várias tarefas simultaneamente. Por exemplo, um funcionário pode cozinhar a comida, outro pode servir a comida aos clientes e um terceiro pode lavar a louça. Este é um exemplo de simultaneidade, pois várias tarefas estão em andamento ao mesmo tempo, mas podem não necessariamente estar sendo executadas simultaneamente.
Por outro lado, se você investisse em equipamentos especializados, como lava-louças e processador de alimentos, poderia realizar as tarefas em paralelo, com cada equipamento realizando uma tarefa separada. Por exemplo, a máquina de lavar louça pode lavar a louça enquanto o processador de alimentos prepara os ingredientes para a próxima fornada de comida. Este é um exemplo de simultaneidade e paralelismo, pois várias tarefas estão em andamento ao mesmo tempo e também estão sendo executadas simultaneamente.
Resumo
Em resumo, a simultaneidade permite que várias tarefas estejam em andamento ao mesmo tempo, mas não necessariamente executando ao mesmo tempo, enquanto o paralelismo requer que várias tarefas sejam executadas simultaneamente.
Em blogs futuros, vamos nos aprofundar em multi-threading e multi-processamento. Esta será uma série de blogs para educar tópicos nessas áreas relacionadas.
Feliz aprendizado!!





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)