
async/await
hàm async, trait Future, runtime tokio, khối async, cú pháp .await, Streams, Pin<T>, hủy bỏ, mẫu executor
1Một hàm được khai báo với từ khóa async trong Rust trả về gì?
Một hàm được khai báo với từ khóa async trong Rust trả về gì?
Câu trả lời
Một hàm async tự động trả về một kiểu implement trait Future. Trình biên dịch chuyển đổi thân hàm thành một máy trạng thái (state machine) implement Future. Giá trị trả về không được tính toán ngay lập tức: nó chỉ được tính khi Future được chờ bằng .await hoặc được thực thi bởi một runtime.
2Vai trò chính của trait Future trong Rust là gì?
Vai trò chính của trait Future trong Rust là gì?
Câu trả lời
Trait Future đại diện cho một phép tính bất đồng bộ có thể chưa hoàn thành. Phương thức poll của nó cho phép executor kiểm tra xem Future đã sẵn sàng (Poll::Ready) hay cần phải chờ (Poll::Pending). Đây là cơ chế nền tảng của tính bất đồng bộ trong Rust, cho phép thực thi non-blocking và hiệu quả.
3Tại sao cần một runtime như tokio để thực thi code async trong Rust?
Tại sao cần một runtime như tokio để thực thi code async trong Rust?
Câu trả lời
Rust không bao gồm runtime bất đồng bộ trong thư viện chuẩn để giữ ngôn ngữ tối giản và cho phép chọn runtime theo nhu cầu. Một runtime như tokio cung cấp executor để poll các Future, scheduler để quản lý các task, và I/O bất đồng bộ. Không có runtime, các Future sẽ không bao giờ được thực thi.
Sự khác biệt giữa async block và async function trong Rust là gì?
Điều gì xảy ra khi sử dụng .await trên một Future trong Rust?
+19 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
Concurrency Basics
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í