Rust

Tokio & Async I/O

Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, async bestand-/netwerk-I/O

22 gespreksvragen·
Senior
1

Wat is de belangrijkste rol van de Tokio-runtime in een asynchrone Rust-applicatie?

Antwoord

De Tokio-runtime levert een executor die futures pollt tot ze voltooid zijn. Het beheert ook een multi-threaded scheduler (standaard) om taken over meerdere OS-threads te verdelen, plus een reactor voor asynchrone I/O-bewerkingen. Zonder runtime doen Rust-futures niets, omdat ze standaard lazy zijn.

2

Hoe initialiseer je de Tokio-runtime met de #[tokio::main]-macro?

Antwoord

De #[tokio::main]-macro transformeert een async main()-functie in een synchroon entry point dat een multi-threaded Tokio-runtime aanmaakt en de async-functie uitvoert. Deze macro genereert automatisch de boilerplate die nodig is om de runtime te maken en te blokkeren totdat de hoofd-future voltooid is.

3

Wat is het verschil tussen #[tokio::main] en #[tokio::main(flavor = "current_thread")]?

Antwoord

Standaard maakt #[tokio::main] een multi-threaded runtime dat taken verdeelt over een pool van worker threads. Met flavor = "current_thread" voert het runtime alle taken alleen op de hoofd-thread uit, wat handig is voor tests, eenvoudige applicaties of wanneer het delen van data tussen threads moet worden vermeden.

4

Wat doet tokio::spawn() en welk type geeft het terug?

5

Waarom moeten futures die aan tokio::spawn() worden doorgegeven 'static zijn?

+19 gespreksvragen

Beheers Rust voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis