我所知道的是:
ReadLock
和 WriteLock
互相影响WriteLock
就像同步的ReadLock
似乎无法单独工作最佳答案
readLock.lock();
写锁),然后在此处停止,直到没有其他线程在写。
(即使用写锁),直到释放该锁为止。
writeLock.lock();
在这里等待直到没有其他线程正在读取或写入。
或写入(即获取读或写锁),直到释放该锁为止。
结合使用这些功能,您一次只能安排一个线程具有写访问权,但是,除了一个线程正在写时,您可以同时阅读任意数量的阅读器。
换一种方式。每次您想从结构中读取时,都采取读取锁。每次您要写入时,都要给写入锁。这样一来,只要发生写操作,就不会有人在阅读(您可以想象您具有独占访问权),但是只要没有人在写,就会有许多读者在同一时间阅读。