gpt4 book ai didi

rust - 替换借用的变量

转载 作者:行者123 更新时间:2023-11-29 08:16:36 25 4
gpt4 key购买 nike

<分区>

我有一桶需要累加值的对象。它受 RwLock 保护,因此我也保留了它的写锁。我想在整个过程中保持一个写锁。

例如:

use std::sync::RwLock;

fn main() {
let locked = RwLock::new(Vec::<u32>::new());

// this is the entry point for real-world code
let mut writer = locked.write().unwrap();

// copy into 'locked' until it is full (has 4 items)
for v in 0..100 {
if writer.len() > 4 {
// discard 'writer' and 'locked', create anew
locked = RwLock::new(Vec::<u32>::new());
writer = locked.write().unwrap();
}
writer.push(v);
}
}

虽然我的示例对固定数据进行操作,因此似乎根本不需要 RwLock,但实际代码会在“实际代码”处进入,不一定会在 的边界处退出已锁定 变为“已满”。

如何在需要时创建一个新的 lockedwriter 对象而借用检查器不同意?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com