Tokio: вопросы на собеседовании
Вопросы и ответы по Tokio: подготовка, примеры и типичные ошибки.
Проверьте себя по Tokio: 5 вопросов, ~10 минут
Вопросов: 42. Частые идут первыми, сложные возвращаются на повторение.
- В каких проектах Tokio (Rust) оправдан, а где он становится источником лишней сложности?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как сравнить Tokio (Rust) с альтернативами по надёжности, скорости разработки, portability, performance и operational cost?Middle
- Какая mental model Tokio (Rust) важна для диагностики: lifecycle, graph, runtime, targets, protocol, threads или resources?Senior· полный разбор — Jobs/Boost
- Как понять, что проблема связана именно с Tokio (Rust), а не с приложением, окружением, сетью или зависимостями?Senior· полный разбор — Jobs/Boost
- Представьте, после изменения Tokio (Rust) сборка, runtime или интеграция стали нестабильными. Как вы будете расследовать проблему?Senior· полный разбор — Jobs/Boost
- Как делать graceful shutdown с
CancellationTokenили broadcast channel?Middle· полный разбор — Jobs/Boost - Как реализовать паттерн graceful shutdown в приложении на Tokio?Middle· полный разбор — Jobs/Boost
- Какие ошибки делают команды, когда используют Tokio (Rust) без понимания его модели выполнения или сборки?Middle
- Какую инженерную проблему Tokio (Rust) решает в build/runtime/systems-разработке, если не сводить ответ к определению?Middle
- Какие production или build/runtime-риски есть у Tokio (Rust): воспроизводимость, совместимость, debugging, ресурсы или supply chain?Senior· полный разбор — Jobs/Boost
- Каковы распространённые причины async deadlock в Tokio и как их предотвратить?Middle· полный разбор — Jobs/Boost
- Что такое трейты
AsyncReadиAsyncWriteв Tokio?Middle - Как работает async runtime Tokio? Что такое executor?Middle· полный разбор — Jobs/Boost
- Как работает backpressure в Tokio? Как ограниченные channels её реализуют?Middle· полный разбор — Jobs/Boost
- Каковы последствия cancellation safety в Tokio?Middle· полный разбор — Jobs/Boost
- Что такое channels
tokio::sync::mpsc,broadcast,oneshotиwatch? Когда использовать каждый из них?Middle· полный разбор — Jobs/Boost - Расскажите о случае, когда вы решали проблему с Tokio (Rust): incident, optimization, migration, debugging или CI/CD.Middle· полный разбор — Jobs/Boost
- Как устроены feature flags в Tokio 1.x и почему важно явно включать только нужные возможности?Middle· полный разбор — Jobs/Boost
- Как feature flags Tokio влияют на binary size и доступные модули?Middle
- Что такое
Futureв Rust и как Tokio доводит futures до завершения?Middle· полный разбор — Jobs/Boost - В чём разница между однопоточным и многопоточным runtime в Tokio?Middle
- Что такое structured concurrency и как
JoinSetв Tokio поддерживает её?Middle· полный разбор — Jobs/Boost - Как тестировать timeout/retry logic без реального ожидания времени?Middle· полный разбор — Jobs/Boost
- Что такое
tokio::fsи чем он отличается отstd::fs?Middle· полный разбор — Jobs/Boost - Как Tokio обрабатывает I/O? Что такое неблокирующий I/O и как
tokio::ioего абстрагирует?Middle· полный разбор — Jobs/Boost - Что такое
#[tokio::main]и во что он разворачивается?Middle· полный разбор — Jobs/Boost - Что такое
tokio::net::TcpListenerи как построить простой TCP-сервер с его помощью?Middle· полный разбор — Jobs/Boost - Что такое Tokio и какую проблему он решает в Rust?Middle
- Что такое
tokio::select!и как он работает?Middle· полный разбор — Jobs/Boost - В чём разница между
tokio::spawnи обычным синхронным потоком?Middle - Как выполнять блокирующий код в асинхронном контексте Tokio с помощью
spawn_blocking?Middle· полный разбор — Jobs/Boost - В чём разница между
tokio::sync::Mutexиstd::sync::Mutex? Когда следует использовать каждый из них?Middle· полный разбор — Jobs/Boost - Как использовать
tokio::sync::RwLockи когда он предпочтительнееMutex?Middle - Что такое
tokio::sync::Semaphoreи для чего он используется?Middle - Как отменить Tokio task и что происходит, когда future прерывается в середине выполнения?Middle
- Что такое Tokio tasks и как они соотносятся с потоками ОС?Middle· полный разбор — Jobs/Boost
- Что такое
tokio::time::sleep,timeoutиinterval? Как их использовать?Middle - Как профилировать и отлаживать проблемы производительности в приложении на Tokio с помощью
tokio-console?Middle - Как тестировать асинхронный код в Tokio с помощью
#[tokio::test]?Middle· полный разбор — Jobs/Boost - Какова возможность Tokio приостанавливать и продвигать время в тестах (
tokio::time::pause())?Middle - Что такое трейт
tower::Serviceи как Tokio соотносится с ним?Middle· полный разбор — Jobs/Boost - Что такое waker в асинхронной модели Rust и как Tokio использует wakers для планирования задач?Middle· полный разбор — Jobs/Boost