# async/await (Rust) > funções async, trait Future, runtime tokio, blocos async, sintaxe .await, Streams, Pin, cancelamento, padrões de executor - 22 perguntas de entrevista - Mid-Level - [Perguntas de entrevista: Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista.md) ## 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. ## Mais 19 perguntas disponiveis - Qual é a diferença entre um async block e uma async function em Rust? - O que acontece ao usar .await em um Future no Rust? Cadastre-se gratis: https://sharpskill.dev/pt/login ## Outros temas de entrevista Rust - [Fundamentos de Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/rust-basics.md): 25 perguntas, Junior - [Ownership & Borrowing](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/ownership-borrowing.md): 22 perguntas, Junior - [Structs & Enums](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/structs-enums.md): 20 perguntas, Junior - [Tratamento de erros](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/error-handling.md): 18 perguntas, Junior - [Coleções](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/collections.md): 20 perguntas, Junior - [Módulos e Pacotes](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/modules-packages.md): 18 perguntas, Junior - [Traits](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/traits.md): 22 perguntas, Mid-Level - [Generics](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/generics.md): 20 perguntas, Mid-Level - [Lifetimes](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/lifetimes.md): 20 perguntas, Mid-Level - [Iterators & Closures](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/iterators-closures.md): 22 perguntas, Mid-Level - [Smart Pointers](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/smart-pointers.md): 22 perguntas, Mid-Level - [Concurrency Basics](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/concurrency-basics.md): 20 perguntas, Mid-Level - [Testing](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/testing.md): 18 perguntas, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/cargo-ecosystem.md): 18 perguntas, Mid-Level - [Pattern Matching](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/pattern-matching.md): 18 perguntas, Mid-Level - [Macros](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/macros.md): 20 perguntas, Mid-Level - [Serde e serialização](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/serde-serialization.md): 20 perguntas, Mid-Level - [Unsafe Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/unsafe-rust.md): 20 perguntas, Senior - [Traits avançados](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/advanced-traits.md): 22 perguntas, Senior - [Lifetimes Avançados](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/advanced-lifetimes.md): 20 perguntas, Senior - [Type System](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/type-system.md): 20 perguntas, Senior - [Tokio & Async I/O](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/tokio-async.md): 22 perguntas, Senior - [Otimização de Desempenho](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/performance-optimization.md): 20 perguntas, Senior - [Memory Management](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/memory-management.md): 20 perguntas, Senior - [Web Frameworks](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/web-frameworks.md): 22 perguntas, Senior - [Database Integration](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/database-integration.md): 20 perguntas, Senior - [Padrões de design em Rust](https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/design-patterns.md): 20 perguntas, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pt/technologies/rust/perguntas-entrevista/async-await