Rust

Tokio & Async I/O

Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, I/O async de arquivo/rede

22 perguntas de entrevista·
Senior
1

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.

2

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.

3

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.

4

O que tokio::spawn() faz e qual tipo ele retorna?

5

Por que os futures passados para tokio::spawn() devem ser 'static?

+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