锁.md
Mutex
这是简单的互斥锁,只允许一个线程访问数据空间,无论是读还是写都需要获取锁。所以他的使用场景比较受限(例如需要频繁写操作)。他的缺点也是显而易见,如果读操作频繁,可能会导致性能瓶颈。
RwLock
可以使用kernel_sync
包中的读写锁。
这个包针对内核环境进行了优化,可能更适合低延迟和高吞吐量的场景。
特点:
- 允许多个线程同时读取数据,但是写操作是独占的。
适用于读操作远多于写操作的场景(缓存、配置数据等)。
SyncUnsafeCell替换Mutex提高性能
SyncUnsafeCell作用:
- 获取可变数据:在Rust 中,默认情况下,数据是不可变的,且不能在多个线程之间共享可变数据。
SyncUnsafeCell
允许你在多线程环境中共享可变数据。 - 内部可变性:
SyncUnsafeCell
提供内部可变性,可以在不获取可变引用情况下修改其内容。 - 安全性:他通过同步机制确保了对
UnsafeCell
的安全访问。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ya0rk の Blog!