DEV Community

Francisco Zanfranceschi
Francisco Zanfranceschi

Posted on • Updated on

[Conceito] - Paralelismo vs Concorrência

Conteúdo original nessa thread do Twitter


Então quer dizer que vc faz tudo ao mesmo tempo – paraleliza tudo... é isso mesmo?

Você sabe a diferença entre PARALELISMO e CONCORRÊNCIA?!

Quando era novo, tomei um fora duma menina em uma festa só pq provei pra ela que ela não fazia tudo ao mesmo tempo!

cc @sseraphini

🧵👇

img


Falando sério, é super normal confundir esses dois conceitos pq, olhando de fora, eles se parecem mesmo.

Mas tem alguns aspectos que são fáceis de entender e que dão clareza sobre a natureza de cada um. É suave, confia.


INTERRUPÇÃO

Vc tá aí fazendo sua gambiarra, aí pára pra olhar o Twitter, aí entra no Insta, etc. Ou seja, vc está atenta/o à várias coisas ao mesmo tempo, mas FAZENDO mesmo apenas uma por vez. Vc tem que interromper uma coisa pra fazer outra, intercalar – a gente é um/a só.

img


INDEPENDÊNCIA

Vc e seu colega baixaram a branch da task, cada um na sua máquina, inserindo bugs, adicionando complexidade, criando variáveis com nomes horríveis, etc.

Duas pessoas fazendo coisas ao mesmo tempo, uma independente da outra. Suave, né?

img


Ou seja, em CONCORRÊNCIA as operações devem ser interrompíveis e resumíveis! P.ex: É possível ter um modelo concorrente com uma única thread (procure sobre o event loop do javascript).

Como tudo pode ser muito rápido, dá a impressão que tudo tá sendo feito ao mesmo tempo.


Paralelismo, por outro lado, tem a ver com independência. Está intimamente relacionado com multi-thread. São coisas realmente sendo executadas ao mesmo tempo de forma independente.


Resumindo

CONCORRÊNCIA tem a ver com interrupção. Realmente uma coisa (muito rapidamente) sendo feita por vez – intercalando.

PARALELISMO tem a ver com independência. Solte dois cachorros de apartamento na rua e vc terá duas merdas em paralelo.

img


Precisa nem falar, né? Chegou até aqui é abraço, mesmo que fique desconfortável 🫂

Valeu demais pela moral!

Discussion (0)