
Concurrency Basics
Threads, thread::spawn, move closures, channels (mpsc), traity Send & Sync, thread safety
1Której funkcji należy użyć, aby utworzyć nowy thread w Rust?
Której funkcji należy użyć, aby utworzyć nowy thread w Rust?
Odpowiedź
Funkcja thread::spawn z modułu std::thread tworzy nowy wątek wykonania. Przyjmuje closure jako parametr i zwraca JoinHandle, który pozwala czekać na zakończenie wątku za pomocą metody join(). Ta funkcja jest głównym punktem wejścia do programowania współbieżnego opartego na wątkach w Rust.
2Co zwraca metoda join() wywołana na JoinHandle?
Co zwraca metoda join() wywołana na JoinHandle?
Odpowiedź
Metoda join() zwraca Result<T, E>, gdzie T jest typem zwracanym przez closure wątku. Jeśli wątek zakończy się normalnie, otrzymujemy Ok(wartość). Jeśli wątek wpadł w panic, otrzymujemy Err zawierający informacje o panic. Pozwala to bezpiecznie odzyskać wyniki wątku lub obsłużyć jego błędy.
3Dlaczego używa się słowa kluczowego move w closure przekazywanej do thread::spawn?
Dlaczego używa się słowa kluczowego move w closure przekazywanej do thread::spawn?
Odpowiedź
Słowo kluczowe move zmusza closure do przejęcia ownership przechwyconych zmiennych zamiast ich pożyczania. Jest to istotne przy thread::spawn, ponieważ nowy wątek może żyć dłużej niż zakres, w którym zdefiniowano zmienne. Bez move kompilator odmawia, ponieważ nie może zagwarantować, że referencje będą prawidłowe przez cały czas życia wątku.
Jaka jest rola traita Send w Rust?
Jaka jest rola traita Sync w Rust?
+17 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
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Makra
Serde i serializacja
Unsafe Rust
Zaawansowane traity
Zaawansowane Lifetime
Type System
Tokio & Async I/O
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