# Tokio & Async I/O (Rust) > Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, async I/O tệp/mạng - 22 câu hỏi phỏng vấn - Senior - [Câu hỏi phỏng vấn: Rust](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van.md) ## 1. Vai trò chính của runtime Tokio trong một ứng dụng Rust bất đồng bộ là gì? **Câu trả lời** Runtime Tokio cung cấp một executor để poll các future cho đến khi hoàn thành. Nó cũng quản lý một scheduler đa thread (mặc định) để phân phối các task trên nhiều thread OS, cùng với một reactor cho các thao tác I/O bất đồng bộ. Nếu không có runtime, các future của Rust sẽ không làm gì cả vì chúng mặc định là lazy. ## 2. Làm thế nào để khởi tạo runtime Tokio bằng macro #[tokio::main]? **Câu trả lời** Macro #[tokio::main] biến đổi một hàm async main() thành một điểm vào đồng bộ, tạo ra một runtime Tokio đa thread và thực thi hàm async. Macro này tự động sinh ra phần boilerplate cần thiết để tạo runtime và block cho đến khi future chính hoàn thành. ## 3. Sự khác biệt giữa #[tokio::main] và #[tokio::main(flavor = "current_thread")] là gì? **Câu trả lời** Theo mặc định, #[tokio::main] tạo ra một runtime đa thread phân phối các task trên một pool worker thread. Với flavor = "current_thread", runtime chỉ thực thi tất cả các task trên thread chính, điều này hữu ích cho việc kiểm thử, các ứng dụng đơn giản hoặc khi cần tránh chia sẻ dữ liệu giữa các thread. ## Còn 19 câu hỏi nữa - tokio::spawn() làm gì và nó trả về kiểu dữ liệu nào? - Tại sao các future được truyền vào tokio::spawn() phải là 'static? Đă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 - [async/await](https://sharpskill.dev/vi/technologies/rust/cau-hoi-phong-van/async-await.md): 22 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 - [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/tokio-async