Rust

async/await

funções async, trait Future, runtime tokio, blocos async, sintaxe .await, Streams, Pin<T>, cancelamento, padrões de executor

22 perguntas de entrevista·
Mid-Level
1

O que retorna em Rust uma função declarada com a palavra-chave async?

Resposta

Uma função async retorna automaticamente um tipo que implementa o trait Future. O compilador transforma o corpo da função em uma máquina de estados que implementa Future. O valor de retorno não é calculado imediatamente: ele só será calculado quando o Future for aguardado com .await ou executado por um runtime.

2

Qual é o papel principal do trait Future em Rust?

Resposta

O trait Future representa uma computação assíncrona que pode ainda não ter terminado. Seu método poll permite que o executor verifique se o Future está pronto (Poll::Ready) ou precisa esperar (Poll::Pending). Esse é o mecanismo fundamental da assincronia em Rust, possibilitando uma execução não bloqueante e eficiente.

3

Por que é necessário um runtime como o tokio para executar código async em Rust?

Resposta

O Rust não inclui um runtime assíncrono em sua biblioteca padrão para manter a linguagem minimalista e permitir a escolha do runtime conforme as necessidades. Um runtime como o tokio fornece o executor que faz poll dos Futures, o scheduler para gerenciar as tarefas e as I/O assíncronas. Sem um runtime, os Futures nunca seriam executados.

4

Qual é a diferença entre um async block e uma async function em Rust?

5

O que acontece ao usar .await em um Future no Rust?

+19 perguntas de entrevista

Domine Rust para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis