首页 > 解决方案 > 如何在不丢弃锁的情况下解锁 rwlock

问题描述

如何解锁rwlock?我不能放下锁,因为我需要它超过 1 次。我有一些这样的代码:

struct Abc {
    lock: RwLock<()>,
    data: usize,
}

let a = Abc {
    RwLock::new(()),
    data: 0,
};

a.lock.read().unwrap();
// do something with data
// now i need to unlock a.lock so others threads can use it

标签: rust

解决方案


正如@Michael Anderson 所说,当防护装置被放下时,RwLock 被解锁,而不是 RwLock 本身。


推荐阅读