Skip to content

G.SAF.ASY.01 避免在异步处理过程中包含阻塞操作

【级别】 建议

【描述】

避免在异步编程中使用阻塞操作。

【反例】

不要在异步流程中使用阻塞操作函数

Rust
async fn read_file() {
  std::thread::sleep(std::time::Duration::from_secs(5)); // 不符合 
}

【正例】

使用异步运行时,如 tokio 提供的非阻塞函数

Rust
async fn read_file() {
  tokio::time::sleep(std::time::Duration::from_secs(5)).await; // 符合 
  Ok(())
}