请帮我解释一下这份合同。我不确定ReentrantReadWriteLock
中的两个锁是否有关联?还是只是两个普通锁的捆绑包?
请帮我解释一下这份合同。我不确定ReentrantReadWriteLock
中的两个锁是否有关联?还是只是两个普通锁的捆绑包?
如果线程正在等待读取锁定,那么它是共享的,但是当线程想要获取写锁定时,只有该线程被允许访问,就像互斥一样。
因此,只允许其中一个操作。 如果锁由读者持有,并且线程请求写锁,则在获得写锁的线程释放它之前,不再允许其他读取者获取读取锁定。
ReentrantReadWriteLock
的设计是这样的,当有人正在读取时,您 无法 获取写锁,反之亦然。 这就是设计意图的一部分。 - Louis Wasserman