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