
Concurrency Basics
Threads, thread::spawn, move closures, channels (mpsc), трейти Send & Sync, thread safety
1Яку функцію слід використовувати для створення нового thread у Rust?
Яку функцію слід використовувати для створення нового thread у Rust?
Відповідь
Функція thread::spawn з модуля std::thread створює новий потік виконання. Вона приймає замикання як параметр і повертає JoinHandle, що дозволяє очікувати завершення потоку методом join(). Ця функція є основною точкою входу для конкурентного програмування на основі потоків у Rust.
2Що повертає метод join(), викликаний на JoinHandle?
Що повертає метод join(), викликаний на JoinHandle?
Відповідь
Метод join() повертає Result<T, E>, де T — це тип повернення замикання потоку. Якщо потік завершується нормально, ви отримуєте Ok(значення). Якщо потік запанікував, ви отримуєте Err із інформацією про паніку. Це дозволяє безпечно отримувати результати потоку або обробляти його помилки.
3Навіщо використовувати ключове слово move із замиканням, що передається в thread::spawn?
Навіщо використовувати ключове слово move із замиканням, що передається в thread::spawn?
Відповідь
Ключове слово move змушує замикання взяти ownership захоплених змінних замість їх запозичення. Це необхідно з thread::spawn, оскільки новий потік може жити довше, ніж область, де визначені змінні. Без move компілятор відмовляє, бо не може гарантувати, що посилання будуть дійсними протягом усього часу життя потоку.
Яка роль трейта Send у Rust?
Яка роль трейта Sync у Rust?
+17 питань зі співбесід
Інші теми співбесід Rust
Основи Rust
Ownership & Borrowing
Structs & Enums
Обробка помилок
Колекції
Модулі та пакети
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Макроси
Serde та серіалізація
Unsafe Rust
Просунуті trait'и
Просунуті Lifetimes
Type System
Tokio & Async I/O
Оптимізація продуктивності
Memory Management
Web Frameworks
Database Integration
Патерни проєктування Rust
Опануй Rust для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно