Rust

async/await

funzioni async, trait Future, runtime tokio, blocchi async, sintassi .await, Streams, Pin<T>, cancellazione, pattern di executor

22 domande da colloquio·
Mid-Level
1

Cosa restituisce in Rust una funzione dichiarata con la parola chiave async?

Risposta

Una funzione async restituisce automaticamente un tipo che implementa il trait Future. Il compilatore trasforma il corpo della funzione in una macchina a stati che implementa Future. Il valore di ritorno non viene calcolato immediatamente: verrà calcolato solo quando il Future viene atteso con .await o eseguito da un runtime.

2

Qual è il ruolo principale del trait Future in Rust?

Risposta

Il trait Future rappresenta una computazione asincrona che potrebbe non essere ancora terminata. Il suo metodo poll consente all'executor di verificare se il Future è pronto (Poll::Ready) o deve attendere (Poll::Pending). È il meccanismo fondamentale dell'asincronia in Rust, che abilita un'esecuzione non bloccante ed efficiente.

3

Perché è necessario un runtime come tokio per eseguire codice async in Rust?

Risposta

Rust non include un runtime asincrono nella sua libreria standard per mantenere il linguaggio minimale e consentire la scelta del runtime in base alle esigenze. Un runtime come tokio fornisce l'executor che fa poll dei Future, lo scheduler per gestire i task e le I/O asincrone. Senza un runtime, i Future non verrebbero mai eseguiti.

4

Qual è la differenza tra un async block e una async function in Rust?

5

Cosa succede quando si usa .await su un Future in Rust?

+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