如何实现防锈原子计数?

问题描述 投票:0回答:1

我正在为我的数据库实现事务处理系统。

并且我希望在初始化事务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实现

rust atomic
1个回答
0
投票

对于所有整数类型,在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));

© www.soinside.com 2019 - 2024. All rights reserved.