linux-BR.org

Notícias de software livre e tecnologias

“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.

Fonte: https://github.com/alexpusch/rust-magic-patterns/blob/master/visual-journey-through-async-rust/Readme.md