Sobes.tech
Junior — Middle

Qual é a ideia principal e que problemas a concepção de concorrência estruturada ajuda a resolver?

sobes.tech IA

Resposta da IA

A conceção de concorrência estruturada destina-se a simplificar a gestão de tarefas paralelas e a prevenir erros relacionados com o código assíncrono.

A ideia principal é que todas as tarefas assíncronas geradas devem ter um ciclo de vida claramente definido, limitado pelo âmbito (scope). Isto significa que as tarefas são iniciadas e terminam dentro de um bloco de código específico, e a tarefa pai não termina até que todas as tarefas filhas tenham terminado.

Isto ajuda a:

  • Evitar tarefas "penduradas" ou "perdidas" que continuam a executar-se após sair do âmbito.
  • Garantir um comportamento mais previsível e facilitar o tratamento de erros.
  • Melhorar a legibilidade e manutenção do código, pois a estrutura de paralelismo torna-se explícita.

Por exemplo, em Swift, usando Swift Concurrency (async/await), a concorrência estruturada é implementada através de async let e TaskGroup, onde todas as tarefas filhas são controladas pela tarefa pai.