
Tokio & Async I/O
Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, async I/O plików/sieci
1Jaka jest główna rola runtime'u Tokio w asynchronicznej aplikacji Rust?
Jaka jest główna rola runtime'u Tokio w asynchronicznej aplikacji Rust?
Odpowiedź
Runtime Tokio dostarcza executor, który wykonuje poll na futures aż do ich zakończenia. Zarządza także scheduler'em wielowątkowym (domyślnie), aby rozdzielać zadania pomiędzy wiele wątków OS, oraz reactor'em do asynchronicznych operacji I/O. Bez runtime'u futures w Rust nic nie robią, ponieważ domyślnie są lazy.
2Jak zainicjować runtime Tokio za pomocą makra #[tokio::main]?
Jak zainicjować runtime Tokio za pomocą makra #[tokio::main]?
Odpowiedź
Makro #[tokio::main] przekształca asynchroniczną funkcję main() w synchroniczny punkt wejścia, który tworzy wielowątkowy runtime Tokio i wykonuje funkcję async. Makro to automatycznie generuje boilerplate niezbędny do utworzenia runtime'u i blokowania aż do zakończenia głównego future.
3Jaka jest różnica między #[tokio::main] a #[tokio::main(flavor = "current_thread")]?
Jaka jest różnica między #[tokio::main] a #[tokio::main(flavor = "current_thread")]?
Odpowiedź
Domyślnie #[tokio::main] tworzy wielowątkowy runtime, który rozdziela zadania pomiędzy pulę worker threads. Z flavor = "current_thread" runtime wykonuje wszystkie zadania wyłącznie na głównym wątku, co jest przydatne w testach, prostych aplikacjach lub gdy należy unikać współdzielenia danych między wątkami.
Co robi tokio::spawn() i jaki typ zwraca?
Dlaczego futures przekazywane do tokio::spawn() muszą być 'static?
+19 pytań z rozmów
Inne tematy rekrutacyjne Rust
Podstawy Rusta
Ownership & Borrowing
Structs & Enums
Obsługa błędów
Kolekcje
Moduły i pakiety
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Makra
Serde i serializacja
Unsafe Rust
Zaawansowane traity
Zaawansowane Lifetime
Type System
Optymalizacja Wydajności
Memory Management
Web Frameworks
Database Integration
Wzorce projektowe w Rust
Opanuj Rust na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo