Concorrência e Paralelismo¶
Concorrência é a composição de tarefas que progridem independentemente. Paralelismo é a execução simultânea de computações. Um projeto concorrente pode ser executado em um núcleo por intercalação; uma execução paralela precisa de múltiplos recursos de processamento.
gantt
title Concurrent interleaving on one worker
dateFormat X
axisFormat %L
section Worker
Task A :a1, 0, 3
Task B :b1, 3, 2
Task A :a2, 5, 2
Task B :b2, 7, 3
Concorrência costuma tratar da capacidade de resposta e do gerenciamento de espera. Paralelismo costuma tratar da redução do tempo decorrido de computação ou do aumento de throughput. Eles se sobrepõem quando tarefas concorrentes executam simultaneamente.
Sequência de aprendizado¶
Preocupações compartilhadas¶
Condições de corrida, falhas de visibilidade, deadlock, starvation, desequilíbrio de carga e excesso de subscrição não pertencem exclusivamente à concorrência ou ao paralelismo. Surgem da coordenação, da memória, do escalonamento e da estrutura da carga.
Aplique as consequências operacionais por meio de pools e recursos limitados, controles de resiliência e o fluxo de depuração e análise de desempenho.