async
/await
De maneira geral, o cĂłdigo async do Rust se parece muito com o cĂłdigo sequencial ânormalâ:
Speaker Notes
This slide should take about 6 minutes.
Pontos chave:
-
Observe que este Ă© um exemplo simplificado para mostrar a sintaxe. NĂŁo hĂĄ operação de longa duração ou qualquer concorrĂȘncia real nele!
-
Qual Ă© o tipo de retorno de uma chamada async?
- Use
let future: () = async_main(10);
emmain
para ver o tipo.
- Use
-
A palavra-chave âasyncâ Ă© açĂșcar sintĂĄtico. O compilador substitui o tipo de retorno por uma future.
-
VocĂȘ nĂŁo pode tornar
main
async, sem instruçÔes adicionais para o compilador sobre como usar a future retornada. -
VocĂȘ precisa de um executor para executar cĂłdigo async.
block_on
bloqueia o thread atual até que a future fornecida tenha sido executada até a conclusão. -
.await
espera assincronamente pela conclusão de outra operação. Ao contrårio deblock_on
,.await
nĂŁo bloqueia o thread atual. -
.await
só pode ser usado dentro de uma funçãoasync
(ou bloco; estes sĂŁo introduzidos mais tarde).