# async/await (Rust) > hàm async, trait Future, runtime tokio, khối async, cú pháp .await, Streams, Pin, hủy bỏ, mẫu executor - 22 câu hỏi phỏng vấn - Mid-Level - [Câu hỏi phỏng vấn: Rust](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van.md) ## 1. 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. ## 2. 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ả. ## 3. 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. ## Còn 19 câu hỏi nữa - 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? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Rust khác - [Cơ bản về Rust](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/rust-basics.md): 25 câu hỏi, Junior - [Ownership & Borrowing](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/ownership-borrowing.md): 22 câu hỏi, Junior - [Structs & Enums](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/structs-enums.md): 20 câu hỏi, Junior - [Xử lý lỗi](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/error-handling.md): 18 câu hỏi, Junior - [Collections](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/collections.md): 20 câu hỏi, Junior - [Modules & Packages](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/modules-packages.md): 18 câu hỏi, Junior - [Traits](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/traits.md): 22 câu hỏi, Mid-Level - [Generics](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/generics.md): 20 câu hỏi, Mid-Level - [Lifetimes](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/lifetimes.md): 20 câu hỏi, Mid-Level - [Iterators & Closures](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/iterators-closures.md): 22 câu hỏi, Mid-Level - [Smart Pointers](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/smart-pointers.md): 22 câu hỏi, Mid-Level - [Concurrency Basics](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/concurrency-basics.md): 20 câu hỏi, Mid-Level - [Testing](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/testing.md): 18 câu hỏi, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/cargo-ecosystem.md): 18 câu hỏi, Mid-Level - [Pattern Matching](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/pattern-matching.md): 18 câu hỏi, Mid-Level - [Macro](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/macros.md): 20 câu hỏi, Mid-Level - [Serde & Serialization](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/serde-serialization.md): 20 câu hỏi, Mid-Level - [Unsafe Rust](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/unsafe-rust.md): 20 câu hỏi, Senior - [Trait nâng cao](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/advanced-traits.md): 22 câu hỏi, Senior - [Lifetime Nâng Cao](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/advanced-lifetimes.md): 20 câu hỏi, Senior - [Type System](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/type-system.md): 20 câu hỏi, Senior - [Tokio & Async I/O](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/tokio-async.md): 22 câu hỏi, Senior - [Tối ưu hóa Hiệu suất](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/performance-optimization.md): 20 câu hỏi, Senior - [Memory Management](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/memory-management.md): 20 câu hỏi, Senior - [Web Frameworks](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/web-frameworks.md): 22 câu hỏi, Senior - [Database Integration](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/database-integration.md): 20 câu hỏi, Senior - [Design Pattern trong Rust](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/design-patterns.md): 20 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/async-await