
Tokio & Async I/O
Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, async I/O file/rete
1Qual è il ruolo principale del runtime Tokio in un'applicazione Rust asincrona?
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.
2Come si inizializza il runtime Tokio con la macro #[tokio::main]?
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.
3Qual è la differenza tra #[tokio::main] e #[tokio::main(flavor = "current_thread")]?
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.
Cosa fa tokio::spawn() e quale tipo restituisce?
Perché i future passati a tokio::spawn() devono essere 'static?
+19 domande da colloquio
Altri argomenti di colloquio Rust
Fondamenti di Rust
Ownership & Borrowing
Structs & Enums
Gestione degli errori
Collezioni
Moduli e package
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro
Serde e serializzazione
Unsafe Rust
Trait avanzati
Lifetime Avanzati
Type System
Ottimizzazione delle Prestazioni
Memory Management
Web Frameworks
Database Integration
Design Pattern in Rust
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