Async Rust: Cơ chế sắp xếp trong chương trình đồng bộ
tsudev· 08/10/2026
Giới thiệu về Async Rust
Async Rust là một tính năng cho phép viết mã không đồng bộ trong ngôn ngữ lập trình Rust. Với Async Rust, các chương trình có thể thực hiện nhiều nhiệm vụ cùng lúc mà không cần phải chờ đợi nhau, giúp tăng hiệu suất và giảm thời gian chờ đợi.Cơ chế sắp xếp trong chương trình đồng bộ
Cơ chế sắp xếp trong chương trình đồng bộ của Rust được thực hiện thông qua việc sử dụng các hàm không đồng bộ (async function) và các đối tượng tương lai (future). Khi một hàm không đồng bộ được gọi, nó sẽ trả về một đối tượng tương lai, đại diện cho kết quả của hàm đó. Đối tượng tương lai này sẽ được sắp xếp và thực hiện bởi một trình sắp xếp (scheduler), giúp đảm bảo rằng các hàm không đồng bộ được thực hiện đúng thứ tự và không trùng lặp.Trình sắp xếp trong Async Rust
Trình sắp xếp trong Async Rust là một thành phần quan trọng, giúp sắp xếp và thực hiện các hàm không đồng bộ. Trình sắp xếp này có thể được implement theo nhiều cách khác nhau, tùy thuộc vào nhu cầu và yêu cầu của chương trình. Một số trình sắp xếp phổ biến trong Async Rust bao gồm Tokio, async-std và smol.Ví dụ về sử dụng Async Rust
Dưới đây là một ví dụ đơn giản về sử dụng Async Rust để thực hiện hai hàm không đồng bộ cùng lúc:rust
use tokio;
async fn ham1() {
println!("Hàm 1 bắt đầu");
tokio::time::sleep(tokio::time::Duration::from_secs(2)).await;
println!("Hàm 1 kết thúc");
}
async fn ham2() {
println!("Hàm 2 bắt đầu");
tokio::time::sleep(tokio::time::Duration::from_secs(1)).await;
println!("Hàm 2 kết thúc");
}
#[tokio::main]
async fn main() {
tokio::spawn(ham1());
tokio::spawn(ham2());
}
Trong ví dụ trên, hai hàm không đồng bộ ham1 và ham2 được gọi cùng lúc bằng cách sử dụng tokio::spawn. Trình sắp xếp của Tokio sẽ giúp sắp xếp và thực hiện hai hàm này đúng thứ tự và không trùng lặp.
Kết luận
Async Rust là một tính năng mạnh mẽ và thú vị của ngôn ngữ lập trình Rust, giúp tăng hiệu suất và giảm thời gian chờ đợi trong các chương trình đồng bộ. Với cơ chế sắp xếp trong chương trình đồng bộ của Rust, các chương trình có thể thực hiện nhiều nhiệm vụ cùng lúc mà không cần phải chờ đợi nhau. Để tìm hiểu thêm về Async Rust và cách sử dụng nó trong các chương trình đồng bộ, bạn có thể tham khảo các nguồn tài liệu sau:- https://herecomesthemoon.net/2026/10/async-rust-where-does-the-scheduler-live/