Rust

Tokio & Async I/O

Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, async I/O file/rete

22 domande da colloquio·
Senior
1

Qual è il ruolo principale del runtime Tokio in un'applicazione Rust asincrona?

Risposta

Il runtime Tokio fornisce un executor che esegue il poll dei future fino al completamento. Gestisce inoltre uno scheduler multi-thread (per impostazione predefinita) per distribuire i task su più thread OS, oltre a un reactor per le operazioni I/O asincrone. Senza un runtime, i future di Rust non fanno nulla, poiché sono lazy per impostazione predefinita.

2

Come si inizializza il runtime Tokio con la macro #[tokio::main]?

Risposta

La macro #[tokio::main] trasforma una funzione async main() in un punto di ingresso sincrono che crea un runtime Tokio multi-thread ed esegue la funzione async. Questa macro genera automaticamente il boilerplate necessario per creare il runtime e bloccare fino al completamento del future principale.

3

Qual è la differenza tra #[tokio::main] e #[tokio::main(flavor = "current_thread")]?

Risposta

Per impostazione predefinita, #[tokio::main] crea un runtime multi-thread che distribuisce i task su un pool di worker thread. Con flavor = "current_thread", il runtime esegue tutti i task solo sul thread principale, il che è utile per i test, le applicazioni semplici o quando si deve evitare la condivisione di dati tra thread.

4

Cosa fa tokio::spawn() e quale tipo restituisce?

5

Perché i future passati a tokio::spawn() devono essere 'static?

+19 domande da colloquio

Padroneggia Rust per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis