Fre*_*ios 13 multithreading mutex readwritelock rust
Mutex
一次只能有一个读者或作者,RwLock
一次可以有一个作家或多个读者.当你这样说的时候,RwLock
似乎总是更好(更少限制)Mutex
,为什么我会使用它呢?
guo*_*ang 11
互斥锁是一种简单的锁定方法,用于控制对共享资源的访问。
读写锁比互斥锁更复杂。
我自己总结一下:
Fre*_*ios 10
有时最好在Rust中使用Mutex
over RwLock
:
RwLock<T>
需要更多的T
线程安全边界:Mutex
要求T: Send
是Sync
,RwLock
需要T
成为Send
和 Sync
成为自己Sync
.换句话说,Mutex
是唯一可以实现可T
同步的包装器.我在reddit中找到了一个很好的直观解释:
由于这些边界,RwLock要求其内容为Sync,即两个线程同时具有该类型的&ptr是安全的.Mutex只需要将数据作为Send,因为从概念上讲,您可以将其视为锁定Mutex时将数据发送到您的线程,当您解锁数据时,数据会被发送到另一个线程.
只Mutex
在你自己使用而不是.T
Send
Sync
RwLock
没有指定的实现,因为它使用系统的实现.一些读写锁可能会受到编写者的匮乏,而Mutex
不会出现这种问题.
Mutex
当你可能有太多的读者让作家拥有锁时,应该使用它.
归档时间: |
|
查看次数: |
1633 次 |
最近记录: |