“fut0” e “fut1” são executados no thread principal (azul), e o futuro “gerado” é executado em algum thread de trabalho (turquesa). Mas eis que os outros futuros, aqueles que usam o método sin() regular, demoram o mesmo. Por padrão, o pool de threads do Tokio manterá um thread para cada núcleo que sua CPU possui, além do thread principal. Vamos adicionar mais algumas tarefas sin_high_cpu ao nosso gráfico:
Este é o gráfico resultante:
E ampliou:
Tokio faz malabarismos com as tarefas entre os threads. Observe como esse futuro e tarefa estão competindo com “spawned3” e “spawned4” nos fios marrom, verde e cinza.
