
Concurrency Basics
Threads, thread::spawn, move closures, channels (mpsc), trait Send & Sync, thread safety
1Nên dùng hàm nào để tạo một thread mới trong Rust?
Nên dùng hàm nào để tạo một thread mới trong Rust?
Câu trả lời
Hàm thread::spawn từ module std::thread tạo một thread thực thi mới. Nó nhận một closure làm tham số và trả về một JoinHandle cho phép chờ thread kết thúc bằng phương thức join(). Hàm này là điểm vào chính cho lập trình đồng thời dựa trên thread trong Rust.
2Phương thức join() trả về gì khi được gọi trên một JoinHandle?
Phương thức join() trả về gì khi được gọi trên một JoinHandle?
Câu trả lời
Phương thức join() trả về một Result<T, E> trong đó T là kiểu trả về của closure của thread. Nếu thread kết thúc bình thường, bạn nhận được Ok(giá trị). Nếu thread bị panic, bạn nhận được Err chứa thông tin panic. Điều này cho phép lấy kết quả của thread hoặc xử lý lỗi của nó một cách an toàn.
3Tại sao dùng từ khóa move với một closure được truyền cho thread::spawn?
Tại sao dùng từ khóa move với một closure được truyền cho thread::spawn?
Câu trả lời
Từ khóa move buộc closure lấy ownership của các biến mà nó bắt giữ thay vì mượn chúng. Điều này thiết yếu với thread::spawn vì thread mới có thể sống lâu hơn phạm vi nơi các biến được định nghĩa. Không có move, trình biên dịch từ chối vì không thể đảm bảo các tham chiếu sẽ hợp lệ trong suốt vòng đời của thread.
Vai trò của trait Send trong Rust là gì?
Vai trò của trait Sync trong Rust là gì?
+17 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Rust khác
Cơ bản về Rust
Ownership & Borrowing
Structs & Enums
Xử lý lỗi
Collections
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro
Serde & Serialization
Unsafe Rust
Trait nâng cao
Lifetime Nâng Cao
Type System
Tokio & Async I/O
Tối ưu hóa Hiệu suất
Memory Management
Web Frameworks
Database Integration
Design Pattern trong Rust
Nắm vững Rust cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí