
Tokio & Async I/O
Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, I/O async de arquivo/rede
1Qual é o papel principal do runtime do Tokio em uma aplicação Rust assíncrona?
Qual é o papel principal do runtime do Tokio em uma aplicação Rust assíncrona?
Resposta
O runtime do Tokio fornece um executor que faz poll dos futures até a conclusão. Ele também gerencia um scheduler multi-thread (por padrão) para distribuir as tarefas entre vários threads do OS, além de um reactor para operações de I/O assíncronas. Sem um runtime, os futures do Rust não fazem nada, pois são lazy por padrão.
2Como inicializar o runtime do Tokio com a macro #[tokio::main]?
Como inicializar o runtime do Tokio com a macro #[tokio::main]?
Resposta
A macro #[tokio::main] transforma uma função async main() em um ponto de entrada síncrono que cria um runtime Tokio multi-thread e executa a função async. Essa macro gera automaticamente o boilerplate necessário para criar o runtime e bloquear até que o future principal seja concluído.
3Qual é a diferença entre #[tokio::main] e #[tokio::main(flavor = "current_thread")]?
Qual é a diferença entre #[tokio::main] e #[tokio::main(flavor = "current_thread")]?
Resposta
Por padrão, #[tokio::main] cria um runtime multi-thread que distribui as tarefas entre um pool de worker threads. Com flavor = "current_thread", o runtime executa todas as tarefas apenas no thread principal, o que é útil para testes, aplicações simples ou quando o compartilhamento de dados entre threads deve ser evitado.
O que tokio::spawn() faz e qual tipo ele retorna?
Por que os futures passados para tokio::spawn() devem ser 'static?
+19 perguntas de entrevista
Outros temas de entrevista Rust
Fundamentos de Rust
Ownership & Borrowing
Structs & Enums
Tratamento de erros
Coleções
Módulos e Pacotes
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macros
Serde e serialização
Unsafe Rust
Traits avançados
Lifetimes Avançados
Type System
Otimização de Desempenho
Memory Management
Web Frameworks
Database Integration
Padrões de design em Rust
Domine Rust para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis