Uma nota sobre paralelismo
Last updated
Last updated
Eu não queria gastar muito texto pra falar de paralelismo, mesmo porque paralelismo é o ato de rodar coisas em paralelo. Nada mais do que isso. Mas pra isso, precisamos de hardware.
Ou precisamos de mais CPU, ou precisamos de mais núcleos de CPU. Simples assim.
Entretanto, há uma vantagem do paralelismo que ainda não mencionei mas que dá pra falar brevemente. Lembra do problema de escalabilidade que poderia ser resolvido com clone de processos? Pois bem, com um núcleo apenas, ainda assim só conseguimos executar uma thread por vez de forma concorrente.
Supondo que temos 400 operações pra executar, e nossa CPU sozinha consegue fazer 100 por segundo, teríamos então uma capacidade de terminar todas as operações em 4 segundos.
Esse é o nosso throughput, ou seja, a capacidade de realizar N tarefas num determinado intervalo de tempo.
100/ops por segundo
Porém com uma CPU dual-core, podemos executar 2 operações por vez de forma paralela, assim nosso throughput dobraria, para 200/ops por segundo.
Bom, é isso que queria falar sobre paralelismo. Não tem segredo. Quer aumentar o throughput do sistema? Coloca mais hardware.
Mas calma jovem...dá pra aumentar throughput também sem precisar ficar comprando mais hardware (que tá cada vez mais caro, né?). Por isso eu bato tanto na tecla para dissociarmos concorrência de paralelismo.
Voltando ao foco principal do guia: concorrência.