乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
Rust 08.01 多线程通过互斥锁指针Mutex和原子计数指针Arc来共享数据
2023-02-05 10:10:59
31
0
0
admin
> 互斥锁指针保证了同一时间只有一个线程获得锁 原子计数指针用法和Rc指针一模一样,只是支持了多线程 ```rust use std::thread; use std::sync::{Mutex,Arc}; fn main() { let counter = Arc::new(Mutex::new(0)); let mut handles = vec![]; for _ in 0..10 { let counter = Arc::clone(&counter); let handle = thread::spawn(move || { let mut num = counter.lock().unwrap(); //lock() 阻塞当前线程直到获得锁为止 *num += 1; }); handles.push(handle); } for handle in handles { handle.join(); } println!("{}",counter.lock().unwrap()); } ```
上一篇:
Rust 08.00 多线程
下一篇:
Rust 09.00 派生宏
文档导航