在 Rust 中,可以通过多种方式实现线程安全的并发请求处理。以下是一些常见的方法:
一、使用 Mutex 和 Arc
1. std::sync::Mutex (互斥锁)
- Mutex 用于确保在同一时间只有一个线程可以访问被它保护的资源。当一个线程想要访问受保护的资源时,它必须先获取锁。
- 例如,假设我们有一个共享的计数器,多个线程可以安全地增加这个计数器的值:
rust格式:
use std::sync::{Arc, Mutex};
use std::thread;
fn main() {
let counter = Arc::new(Mutex::new(0));
let mut handles = vec![];
for _ in 0..10 {
let counter_clone = Arccounter);
let handle = thread::spawn(move || {
let mut num = counter_clone.lock().unwrap();
*num += 1;
});
handles.push


126

被折叠的 条评论
为什么被折叠?



