Bem-vindos

"Async" Ă© um modelo de concorrĂȘncia onde vĂĄrias tarefas sĂŁo executadas concorrentemente, executando cada tarefa atĂ© que ela bloqueie, e entĂŁo mudando para outra tarefa que estĂĄ pronta para fazer progresso. O modelo permite executar um nĂșmero maior de tarefas em um nĂșmero limitado de threads. Isso ocorre porque o custo por tarefa Ă© tipicamente muito baixo e os sistemas operacionais fornecem primitivas para identificar eficientemente I/O que Ă© capaz de prosseguir.

A operação assíncrona do Rust é baseada em "futures", que representam trabalho que pode ser concluído no futuro. As futures são "polled" até que elas sinalizem que estão completas.

As futures sĂŁo polled por um runtime assĂ­ncrono, e vĂĄrios runtimes diferentes estĂŁo disponĂ­veis.

ComparaçÔes

  • O Python tem um modelo semelhante em seu asyncio. No entanto, seu tipo Future Ă© baseado em callback, e nĂŁo polled. Programas async em Python requerem um "loop", semelhante a um runtime em Rust.

  • O Promise do JavaScript Ă© semelhante, mas novamente baseado em callback. O runtime da linguagem implementa o event loop, entĂŁo muitos dos detalhes da resolução de Promise sĂŁo ocultos.

Agenda

Including 10 minute breaks, this session should take about 3 hours and 20 minutes. It contains:

SegmentDuration
Fundamentos de Async (Assincronicidade)30 minutes
Canais e Controle de Fluxo20 minutes
Armadilhas55 minutes
ExercĂ­cios1 hour and 10 minutes