Mutex
互斥锁是最基础的并发原语之一,用于保护共享数据。
let mutex = Mutex::new(0);
基础
同步原语
Condition Variables
用于线程等待特定条件成立。
let cvar = Condvar::new();
高级
同步原语
Barrier
同步屏障,确保多个线程在同一点同步后再继续执行。
let barrier = Barrier::new(3);
中级
同步原语
RwLock
读写锁允许多个读操作同时进行,但写操作需要独占访问。
let lock = RwLock::new(data);
中级
同步原语
Semaphore
计数信号量,用于控制对资源的并发访问数量。
let semaphore = Semaphore::new(3);
中级
同步原语
Once
确保某段代码只执行一次的同步原语。
static INIT: Once = Once::new();
中级
同步原语
Parking_lot
更紧凑、更高效的同步原语库,提供了标准库同步原语的替代实现。
let mutex = parking_lot::Mutex::new(0);
let guard = mutex.lock();
高级
同步原语
Event Listener
高效的、多生产者-多消费者的通知机制。
let event = Arc::new(Event::new());
let listener = event.listen();
event.notify(3); // 通知3个监听器
中级
同步原语
Triggered
一次性事件通知机制,用于跨线程或异步任务的触发控制。
let (trigger, listener) = Trigger::new();
listener.wait(); // 阻塞等待触发
trigger.trigger(); // 触发事件
中级
同步原语