首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-10 18:54
已编辑
云南大学 Java
秋招第一面 九机凉经
云南九机(小厂还是中厂也不清楚),目前往上没看到任何面经,本着开源思想,发出2面线下凉经。总的来说我觉得答的还不错的,80%都相对完美地答出来了,剩下的也都给出了一定的答案,其中一个面试官聊着聊着看着还挺开心的,本来以为稳了在纠结去不去,结果今天收到了感谢信,很奇特的体验。印象比较深刻的如下(其他都是特别经典的八股,直接答了没什么印象):面试官1(聊的比较来的):1.项目中会话记忆value比较大,怎么保证高并发的速度?用redis主从,主写从读(个人能想到的方法,不是标准答案估计)2.用过并行lambda表达式吗?没用过,lambda表达式用的比较多的是在steam流中。(最后发现问的好像就...
查看12道真题和解析
点赞
评论
收藏
分享
11-08 09:16
C++
这个岗怎么样?(baidu)
有没有老哥知道这个岗具体做什么,会不会有什么坑。双非本,面试答的不太好,三次也都过了。
投递百度等公司10个岗位
点赞
评论
收藏
分享
09-28 16:37
腾讯_项目经理(实习员工)
她真的,我哭死!
太会安慰人了我只能说这个hr,太暖心了我只能说这个hr,这个,我i只能说只能说
陪伴我孤寂旅程:
恭喜楼主!真是另一种肯定
点赞
评论
收藏
分享
10-25 18:31
九江学院 Java
简历怎么改啊!
秋招现在还是0offer,天天写测评,有大佬给点意见吗!
点赞
评论
收藏
分享
今天 11:52
南京邮电大学 Java
秋招何时能结束?
目前有顺丰、招银云创在泡池子,顺丰状态码已经60(11.7),各位兄弟知道何时能开奖不?云创问了下HR,说在横向比较,已经快两周了不抱希望了。哎,这个秋招不太顺利
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
15
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
在大厂实习被辞了......
3.4W
2
...
炸裂!字节大模型员工被裁,听说是泄密了
1.4W
3
...
我为什么要两次放弃年终奖
4420
4
...
离职前mt给我留的一句话
4255
5
...
数字马力一面
3705
6
...
数字马力 二面
3233
7
...
工资是我两倍,技术只有我一半
2543
8
...
在公司实习时如何写笔记?
2409
9
...
数字马力二面
2371
10
...
懂车帝后端日常一面
2315
创作者周榜
更多
正在热议
更多
#
第一次找实习,我建议__
#
8876次浏览
118人参与
#
如果今天是你的last day,你会怎么度过?
#
41231次浏览
277人参与
#
联影求职进展汇总
#
94764次浏览
479人参与
#
秋招暂停,我将对以下公司做出处罚__
#
17326次浏览
76人参与
#
四大天坑是哪四家?
#
87973次浏览
227人参与
#
从mentor身上学到了__
#
9170次浏览
136人参与
#
如果有时光机,你最想去到哪个年纪?
#
60276次浏览
831人参与
#
你听到的“最没用”的秋招建议
#
14584次浏览
170人参与
#
2025秋招体验点评
#
37115次浏览
376人参与
#
军工所铁饭碗 vs 互联网高薪资,你会选谁
#
2680次浏览
17人参与
#
非技术岗简历怎么写
#
258200次浏览
3093人参与
#
工作以后,你父母对你啥态度
#
6446次浏览
69人参与
#
小红书取消大小周
#
78190次浏览
180人参与
#
你遇到过哪些神仙同事
#
120072次浏览
753人参与
#
什么样的公司千万别去
#
9319次浏览
84人参与
#
机械人的保底公司是哪一家?
#
42780次浏览
139人参与
#
选完offer后,你后悔学机械吗?
#
45381次浏览
257人参与
#
薪资要看总包还是月薪?
#
12249次浏览
138人参与
#
实习生的蛐蛐区
#
832054次浏览
4025人参与
#
秋招签约后的心态变化
#
103135次浏览
917人参与
#
机械人值得去的半导体企业
#
30508次浏览
179人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务