DevGuideTK
← Trilha Backend

Concorrência e paralelismo

Threads, laço de eventos, async e goroutines, e como cada modelo lida com muitos pedidos ao mesmo tempo.

Concorrência é lidar com várias tarefas ao mesmo tempo, alternando entre elas. Paralelismo é executar várias tarefas literalmente ao mesmo tempo, em CPUs diferentes.

Todo backend atende muitos pedidos simultâneos. O modelo de concorrência da linguagem decide quantos ele aguenta e quais erros aparecem só sob carga.

  • Esperar entrada e saída pede concorrência; calcular pede paralelismo.
  • Um laço de eventos atende milhares de esperas, e trava inteiro com um cálculo pesado.
  • Chamar uma função que bloqueia dentro de código assíncrono trava tudo.
  • Duas tarefas alterando o mesmo dado sem proteção perdem atualizações.
  • Concorrência sem limite derruba as dependências.