rust有没有类似std::atomic_bool
时间: 2023-11-07 08:59:23 浏览: 174
rexpat:Rust:red_heart:Expat库
是的,Rust有类似于std::atomic_bool的功能。它被称为AtomicBool,属于std::sync::atomic模块。AtomicBool是一个原子布尔值,可以在多线程环境中安全地访问和修改。以下是一个使用AtomicBool的示例:
```rust
use std::sync::atomic::{AtomicBool, Ordering};
fn main() {
let my_bool = AtomicBool::new(false);
// Set the value of the AtomicBool
my_bool.store(true, Ordering::SeqCst);
// Get the value of the AtomicBool
let value = my_bool.load(Ordering::SeqCst);
assert_eq!(value, true);
}
```
在这个例子中,我们创建了一个名为my_bool的AtomicBool,初始值为false。然后我们使用store方法将其设置为true,使用load方法获取其当前值,并使用assert_eq!宏断言它等于true。注意,store和load方法都需要一个Ordering参数,这个参数指定了内存访问的顺序。在这个例子中,我们使用了SeqCst(Sequentially Consistent),这是最常用的顺序。它保证了所有线程对内存的访问顺序是一致的,因此可以保证数据的正确性。
阅读全文