我正在为我的数据库实现事务处理系统。
并且我希望在初始化事务ID时将其增加1:
pub struct Transaction {
id: i32,
}
impl Transaction {
fn new() -> Transaction {
}
}
assert_eq!(1, Transaction::new().id)
assert_eq!(2, Transaction::new().id)
哪些可以由Java中的static AtomicLong
实现
对于所有整数类型,在std::sync::atomic
模块中定义了相似的原子类型,尤其是您可以为代码段选择AtomicI32
:
AtomicI32
我也建议您查看use std::sync::atomic::{AtomicI32, Ordering};
pub struct Transaction {
id: AtomicI32,
}
let transaction = Transaction { id: AtomicI32::new(1) };
assert_eq!(1, transaction.id.fetch_add(1, Ordering::Relaxed));
assert_eq!(2, transaction.id.load(Ordering::Relaxed));