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 tipoFuture
Ă© 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:
Segment | Duration |
---|---|
Fundamentos de Async (Assincronicidade) | 30 minutes |
Canais e Controle de Fluxo | 20 minutes |
Armadilhas | 55 minutes |
ExercĂcios | 1 hour and 10 minutes |