ReentrantReadWriteLock:ReadLock和WriteLock有什么区别?

ReentrantReadWriteLock:ReadLock和WriteLock有什么区别?,第1张

ReentrantReadWriteLock:ReadLock和WriteLock有什么区别? readLock.lock();
  • 这意味着,如果有任何其他线程 (即持有写锁),则在此处停止直到没有其他线程在写。
  • 一旦授予 了该锁,在释放该锁之前,将不允许其他线程进行 (即获取写锁)。

writeLock.lock();
  • 这意味着,如果有任何其他线程正在 读取 写入,请在此处停止并等待,直到没有其他线程在读取或写入。
  • 授予锁后,在释放该锁之前,将不允许其他线程 读取 写入(即获取读取或写入锁)。

结合使用这些功能,您一次只能安排一个线程进行写访问,但是,除了一个线程正在写时,您可以同时阅读任意数量的阅读器。

换一种方式。你想每次 读取 从结构,采取了 锁。每次您 要写时 ,都要
一个锁。这样一来,只要发生写 *** 作,就不会有人在读(您可以想象您具有独占访问权),但是只要没有人在写,就会有许多读者同时阅读。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5586461.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存