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