Dzwebs.Net

撰写电脑技术杂文十余年

RUST之Arc原子,RwLock读写锁及thread多线程的综合使用

Admin | 2023-4-6 22:39:49 | 被阅次数 | 1507

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  本文我们重点介绍Rust的RwLock读写锁的使用,该RwLock即能锁定读也能锁定写,适合在多线程中使用,下面直接上代码。

use std::thread;
use std::sync::{Arc,RwLock};
fn main(){
let mut v = Arc::new(RwLock::new(vec![1,2,3]));
let mut haddles = vec![];
let mut length = v.read().unwrap().len();
for i in 0..length{
let tv = v.clone();
let h = thread::spawn(move || {
let val = tv.read().unwrap()[i];
let mut p = tv.write().unwrap();
p.push(val*val);

});
haddles.push(h);
}
for i in haddles{
i.join().unwrap();
}

length = v.read().unwrap().len();
for i in 0..length{
println!("{}",v.read().unwrap()[i]);
}

}

  知识拓展:有点类似Mutex哦。

/*运行结果
1
2
3
1
9
4
*/


该杂文来自: 最新技术

上一篇:rust字符串转对应的字节(十进制u8)及二进制

下一篇:rust之struct结构体作为函数参数及多个实例进行比

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计