社区
Java SE
帖子详情
java既然有了互斥锁了,那么读写锁似乎有点重复啊
aewfqe
2012-08-27 11:12:19
作为数据保护而言,我觉得用到读写锁的地方,都可以用互斥锁取代,效果差不多啊。
那么为什么还要弄一个ReentrantLock来管理Read/Write呢? ReentrantLock比单纯synchronized()有什么优点?
谢谢
...全文
126
2
打赏
收藏
java既然有了互斥锁了,那么读写锁似乎有点重复啊
作为数据保护而言,我觉得用到读写锁的地方,都可以用互斥锁取代,效果差不多啊。 那么为什么还要弄一个ReentrantLock来管理Read/Write呢? ReentrantLock比单纯synchronized()有什么优点? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
scbb
2012-08-27
打赏
举报
回复
因为文件除了你程序还可能有,其他程序,或者操作系统等访问。
比如你程序想去打开个文件,要是你还能在windows里把它删了。。。你觉得这种情况会不会挺难办得呢。
你的互斥锁管不了windows的删除吧。。。
aewfqe
2012-08-27
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
因为文件除了你程序还可能有,其他程序,或者操作系统等访问。
比如你程序想去打开个文件,要是你还能在windows里把它删了。。。你觉得这种情况会不会挺难办得呢。
你的互斥锁管不了windows的删除吧。。。
[/Quote]
嗯,很有道理啊。
今夜和学妹的深入交流,我彻底掌握了ReadWriteLock精髓!
本文介绍了
Java
并发编程中的
读写锁
原理,强调在读多写少的场景下,
读写锁
相较于
互斥锁
的优势。讨论了如何使用ReadWriteLock实现缓存,特别是如何处理缓存初始化和数据一致性问题。文中还提到了
读写锁
的升级与降级,指出
读写锁
不支持锁升级以避免死锁,但支持降级操作。最后,分析了在高并发下防止
重复
查询数据库的重要性以及通过超时策略解决数据一致性问题。
Java
锁的分类
本文详细介绍了
Java
中的锁机制,包括公平锁和非公平锁、可重入锁、独享锁/共享锁、
互斥锁
/
读写锁
、乐观锁/悲观锁、分段锁、偏向锁/轻量级锁/重量级锁和自旋锁。
Java
中的synchronized是非公平锁,ReentrantLock可指定公平性。可重入锁允许同一线程
重复
获取锁,防止死锁。
读写锁
允许多个读取线程共享,写锁独占。乐观锁与悲观锁代表不同并发观点,自旋锁在获取锁失败时循环等待而非阻塞。
锁策略--
本文介绍了
Java
中的多种锁策略。包括乐观锁与悲观锁,适用于不同竞争场景;轻量锁和重量锁,JVM 会自动选择;自旋锁和挂起等待锁获取锁的方式不同;
读写锁
分读锁和写锁,
互斥锁
保证资源独占;可重入锁和不可重入锁对
重复
加锁处理不同;公平锁和非公平锁在竞争锁顺序上有差异。
面试频繁被问
Java
中的各种锁,今天就给大伙来梳理梳理
本文详细介绍了
Java
并发编程中锁的多种类型,包括乐观锁与悲观锁、独享锁与共享锁、
互斥锁
与
读写锁
、可重入锁、公平锁与非公平锁、分段锁、以及Synchronized的偏向锁、轻量级锁和重量级锁。乐观锁通过版本号或CAS实现,悲观锁如synchronized关键字。ReentrantLock和ReadWriteLock分别是独享锁和
读写锁
的实现。可重入锁允许线程
重复
进入临界区,Synchronized也具备此特性。公平锁与非公平锁决定了线程获取锁的顺序,而分段锁如ConcurrentHashMap的Segment实现提高了并发性能。最后,文章讨论了锁的升级机制,从偏向锁到重量级锁,以及自旋锁的概念。
Java
并发:
互斥锁
和
读写锁
本文详细介绍了
Java
中
互斥锁
和
读写锁
的工作原理、特性以及应用场景,包括内置锁synchronized、显式锁ReentrantLock、公平性和非公平性,以及
读写锁
ReadWriteLock的概念和使用方式。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章