首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
蕾姆是我女神
2018-11-23 18:45
已编辑
青州街男子职业技术学院 Java
关注
已关注
取消关注
忽然想不通了,Java里的读写锁里的读锁有什么用?
ReentrantReadWriteLock里的readLock有什么用?
看百度上有个人说这样能让多线程不阻塞进入临界区,
可是不加锁的话多线程不是都可以访问临界区吗?
如果阻塞的话怎么会出现线程安全问题……
求大佬指点迷津,加读锁和不加读锁有啥区别。
提示
全部评论
推荐
最新
楼层
Albertnet
中国移动_PaaS产品部_软件开发工程师
读-写锁 (1)读写锁的出现原因: ReentrantLock实现一种标准的互斥锁,每次最多只有一个线程能持有ReentrantLock,限制了并发性,互斥是一种保守的加锁策略,虽然避免了“写/写”冲突和“写/读”冲突,但也避免了“读/读”冲突,而大部分情况下读操作比较多,如果此时能够放宽加锁需求,允许多个读操作的线程同时访问数据结构,可以提升程序的性能(只要每个线程保证读取到最新的数据,并且在读取数据时不会有其他线程修改数据就行) (2)ReentrantLock提供的非互斥的读写锁的定义 1)一个资源可以被多个读操作访问,或者被一个写操作访问,但两者不能读写操作同时进行。2)读-写锁是一种性能优化措施,可以实现更高的并发性,提高程序的性能。3)当锁的持有时间较长并且大部分操作都不会修改被守护的资源时,读-写锁可以提高并发性。
2
回复
分享
发布于 2017-09-03 08:02
JasWag
山东工商学院 Java
总的来说 读写互斥和读锁共享,再来说场景 单/多线程 1、单线程:锁可重入(多个读或多个写) 2、多线程:当前线程读阻塞其他线程写,当前线程写阻塞其他线程读写
1
回复
分享
发布于 2021-11-28 17:38
吃口屎冷静下
Java
读读不互斥,读写互斥,写写互斥
4
回复
分享
发布于 2017-09-02 22:40
March..
Санкт-Петербургский государственный университет информационных технологий, механики и оптики Java
防止读的时候其他线程写,允许读的时候其他线程读
3
回复
分享
发布于 2017-09-02 22:35
驼君
北京工业大学 Java
加读锁应该是防止在写入的时候读取,防止读取脏数据
2
回复
分享
发布于 2020-03-10 17:18
厨师沙拉.
重庆大学 后端
刚学到这里,回复下自己的看法。因为读写锁锁住的不是共享资源,而是临界区,临界区里是对共享资源的操作,读写锁能控制多线程里的临界区对于共享资源访问的动作,但是不能控制共享资源不被别人访问。没有在锁住的临界区内的其它的线程依旧可以访问共享资源。所以如果不加读锁就会导致写的时候,共享资源被读。有此类问题的朋友可以试着写一下代码跑一下看看。
点赞
回复
分享
发布于 2022-02-16 22:54
牛客520318129号
加读锁,保证可重复读。 加写锁,自己写,也阻塞别人读,因为数据正在改动。
点赞
回复
分享
发布于 2020-12-04 23:00
雪刚
西北工业大学 Java
关键理解是同一锁对象 :用同一个锁对象, 在加了写锁的代码块执行期间,能阻塞 对该锁对象加写锁,当然也阻塞了写锁加锁和解锁之间的代码块的执行。
点赞
回复
分享
发布于 2018-11-23 18:28
等待offer
广东 Java
请求读锁的线程进去之后,其他请求读锁线程可以继续进入。但此时,请求写锁的线程不能进入,会被阻塞,直到所有请求读锁的线程结束之后,才有可能进入。
点赞
回复
分享
发布于 2017-09-03 07:43
Thare
淘天集团_技术专家
读锁:共享锁 写锁:排它锁
点赞
回复
分享
发布于 2017-09-03 02:00
浮生一梦暗若痴
老和山职业技术学院 C++
等你用到的时候就理解了
点赞
回复
分享
发布于 2017-09-03 01:26
都拿我当备胎
蓝翔技校 Java
h_b吧
点赞
回复
分享
发布于 2017-09-03 00:04
向宇前桌
查硕 Java
处理高并发
点赞
回复
分享
发布于 2017-09-02 23:57
见习精神病
天津财经大学 Java
加了读锁别的线程如果要加写锁就阻塞了呀
点赞
回复
分享
发布于 2017-09-02 22:42
暂无评论,快来抢首评~
相关推荐
昨天 11:13
Fibocom广和通_助理工程师(准入职员工)
5月一大波公司开启了实习
最近又开启很多实习,26届小伙伴抓紧投递!主页置顶文章有获取方式哦,有需要的可以看看。
校招岗位汇总
点赞
评论
收藏
分享
昨天 00:13
已编辑
门头沟学院 Java
百度Java日常实习一面
最近每天更新一篇,都是老素材去年面的。想冲一冲1000人品的奖章。uu们觉得有帮助的话不妨点个追番,送送花,陈某定带你一路飞驰(凡人修仙传台词)。1.自我介绍2.项目里有什么技术难点吗?3.kafka的架构4.kafka怎么保证数据不丢失5.kafka怎么解决重复消费问题6.kafka的消费顺序性怎么保证7.AQS原理(简历里写了就特别喜欢问)8. jvm内存划分,垃圾回收9.JAVA对象的生命周期10.你用的jdk版本,是哪个垃圾回收器。还了解其它垃圾回收器吗11.redis数据结构,说几条redis原生命令12.mysql三大日志,存了什么,作用13.Spring里怎么实现事务14.让你自...
查看16道真题和解析
点赞
评论
收藏
分享
04-13 14:13
四川轻化工大学 测试工程师
太难了😫
求面试求offer啊啊啊啊:
1600一个月?
点赞
评论
收藏
分享
05-07 11:22
哈尔滨理工大学 Java
神州信息
这是多缺人 随便答的都过了
真烦好烦真烦:
牛友太有实力了
点赞
评论
收藏
分享
05-13 12:34
已编辑
中国地质大学(武汉) Java
一个茶叶蛋,让mt给我道歉
今天上班,刚坐下,吃了口茶叶蛋,看见领导走过来了,我也不知道为什么,就想一口把茶叶蛋全吃了,领导突然走过来说:小李,我们今年要全面拥抱AI啊,我记得你简历上写的熟悉python,我准备让你和你mt(部门大佬)负责AI模型模块的开发工作。然后我就噎住了我擦。也不是噎住了,就是一会隔一下,然后身体猛的一抖那种,大家应该有过体会。我也不敢拒绝啊,只能边打嗝边说好。领导顺便问mt:你带着小李有没有问题?mt:熟悉python当然没问题的呀领导正准备走,mt问了一句:java和python区别你知道是什么吗?我:一个是编译性语言,一个是解释性语言吧。。吧。。mt:是吗?那什么是编译性语言?什么是解释性语...
找只鸡:
茶叶蛋好吃吗
工作时那些社死瞬间
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
15
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
美团Java日常实习一面
2.0W
2
...
“我想了想,你去哪我都想和你在一起”
1.8W
3
...
在星巴克一个月靠脸赚4w
8966
4
...
实习开到298k 请问要不要接
8844
5
...
双非大一 微派网络后端一面
8540
6
...
学生到打工人的转换最重要的就是主动
8337
7
...
在华为od干的要猝死了
8291
8
...
滴滴oc
5904
9
...
什么魔幻剧本
5784
10
...
牛客小白月赛116 题解
5624
创作者周榜
更多
正在热议
更多
#
牛油的搬砖plog
#
24407次浏览
110人参与
#
大学最后一个寒假,我想……
#
28584次浏览
259人参与
#
一人一个landing小技巧
#
22174次浏览
433人参与
#
运营每日一题
#
67301次浏览
643人参与
#
查收我的offer竞争力报告
#
176043次浏览
1052人参与
#
面试被问第一学历差时该怎么回答
#
122149次浏览
765人参与
#
电网笔面经互助
#
31434次浏览
317人参与
#
找工作的破防时刻
#
24264次浏览
381人参与
#
我在牛爱网找对象
#
177828次浏览
1337人参与
#
为什么那么多公司毁约
#
163123次浏览
1223人参与
#
520告白墙
#
16671次浏览
298人参与
#
2023届毁约公司名单
#
190141次浏览
938人参与
#
实习学不到东西怎么办?
#
203218次浏览
2111人参与
#
实习/项目/竞赛奖项,哪个对找工作更重要?
#
80107次浏览
1102人参与
#
腾讯音乐求职进展汇总
#
86003次浏览
482人参与
#
25届秋招公司红黑榜
#
259248次浏览
1089人参与
#
如果公司降薪,你会跳槽吗?
#
65462次浏览
515人参与
#
我想象的实习vs现实的实习
#
277337次浏览
2207人参与
#
被同事甩锅了怎么办
#
18891次浏览
94人参与
#
哪些企业的面试体验感最差?
#
23933次浏览
233人参与
牛客网
牛客企业服务