Sobes.tech
Junior — Middle

Por que é considerado incorreto o uso do termo 'threads leves' para as corutinas?

sobes.tech IA

Resposta da IA

O termo "threads leves" para as corrotinas é considerado incorreto por várias razões:

  1. Diferença na natureza: Os threads (fios) são objetos do sistema gerenciados pelo sistema operativo, com sua própria pilha e contexto de execução. As corrotinas são objetos de utilizador que implementam multitarefa cooperativa dentro de um único thread.

  2. Mecanismo de troca: Os threads são trocados pelo escalonador do sistema operativo, o que requer custos de troca de contexto. As corrotinas trocam explicitamente no código (yield, suspend), o que é muito mais barato.

  3. Paralelismo vs Concorrência: Os threads podem ser executados em paralelo em múltiplos núcleos, as corrotinas geralmente em um único thread, proporcionando concorrência mas não paralelismo.

  4. Recursos: Os threads requerem alocação de recursos do sistema (pilha, descritores), as corrotinas têm custos mínimos de sobrecarga, pois são apenas objetos e estados na memória.

Portanto, as corrotinas devem ser consideradas como um mecanismo separado de programação assíncrona, e não como "threads leves".