首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
见习精神病
天津财经大学 Java
加了读锁别的线程如果要加写锁就阻塞了呀
点赞
回复
分享
发布于 2017-09-02 22:42
向宇前桌
查硕 Java
处理高并发
点赞
回复
分享
发布于 2017-09-02 23:57
都拿我当备胎
蓝翔技校 Java
h_b吧
点赞
回复
分享
发布于 2017-09-03 00:04
浮生一梦暗若痴
老和山职业技术学院 C++
等你用到的时候就理解了
点赞
回复
分享
发布于 2017-09-03 01:26
Thare
淘天集团_技术专家
读锁:共享锁 写锁:排它锁
点赞
回复
分享
发布于 2017-09-03 02:00
等待offer
广东 Java
请求读锁的线程进去之后,其他请求读锁线程可以继续进入。但此时,请求写锁的线程不能进入,会被阻塞,直到所有请求读锁的线程结束之后,才有可能进入。
点赞
回复
分享
发布于 2017-09-03 07:43
雪刚
西北工业大学 Java
关键理解是同一锁对象 :用同一个锁对象, 在加了写锁的代码块执行期间,能阻塞 对该锁对象加写锁,当然也阻塞了写锁加锁和解锁之间的代码块的执行。
点赞
回复
分享
发布于 2018-11-23 18:28
牛客520318129号
加读锁,保证可重复读。 加写锁,自己写,也阻塞别人读,因为数据正在改动。
点赞
回复
分享
发布于 2020-12-04 23:00
厨师沙拉.
重庆大学 后端
刚学到这里,回复下自己的看法。因为读写锁锁住的不是共享资源,而是临界区,临界区里是对共享资源的操作,读写锁能控制多线程里的临界区对于共享资源访问的动作,但是不能控制共享资源不被别人访问。没有在锁住的临界区内的其它的线程依旧可以访问共享资源。所以如果不加读锁就会导致写的时候,共享资源被读。有此类问题的朋友可以试着写一下代码跑一下看看。
点赞
回复
分享
发布于 2022-02-16 22:54
还没有回复哦~
相关推荐
01-06 18:00
门头沟学院 Python
酷家乐测开二面
拷打局,无手撕,纯折磨40分钟自我介绍业务测试各阶段关注什么提测时间紧怎么办,如何保证质量自动化测试中多个接口共享数据怎么办线上出现紧急问题怎么办项目中的MQ怎么使用的String和StringBuffer的应用场景区别讲一下垃圾回收机制youngGC和fullGC区别如何知道对象是不是垃圾多线程开发哪几种方式线程有哪几种状态前端了解多少Redis和MySQL区别ES和MySQL如何保证一致性的怎么压力测试的购物车用例设计输入URL访问网站涉及到了什么gpt了解程度职业规划
查看20道真题和解析
点赞
评论
收藏
分享
01-02 10:55
大连理工大学 Java
贝壳java面试,二面挂
一面:聊了下项目,问了下redis,数据库,线程池,系统优化相关的问题手写代码字符串转int面试用时五十分钟二面:1.问对贝壳和装修行业怎么看2.聊聊项目,离职原因3.开放题目设计顺风车系统面试用时四十分钟
查看3道真题和解析
点赞
评论
收藏
分享
2024-11-10 22:06
上海震旦职业学院 前端工程师
导员貌似在催三方
😭😭😭我的秋招一塌糊涂啊
jack_miller:
我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞
评论
收藏
分享
2024-12-11 14:11
中国海洋大学 数值策划
offer选择,🐮🐮们帮个忙,快截止了
EEbond:
看薪水就好了,还用问牛油吗
点赞
评论
收藏
分享
01-02 18:35
青岛大学 C++
坐我对面的两个同事
一个i人怨气冲天,估计想离职了。 一个e人精神状态堪忧,但还想继续干下去。 生存还是毁灭?这是一个问题。
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
15
分享
评论
提到的真题
返回内容
全站热榜
1
...
Java逆袭指南 | 神哥助你一个月拿下大厂offer | 手把手教你准备春招与暑期实习
2.8W
2
...
26届 Java日常实习timeline
1.0W
3
...
【26届三段大厂实习】如何成为大老板嫡系的技巧
7001
4
...
CVTE视源股份毁秋招三方
6824
5
...
2024牛客年度作者丨颁奖典礼✨
5951
6
...
【有奖互动】高情商过年篇——春节回家如何应对亲戚采访
5064
7
...
组里社招到了一个学历造假的
4491
8
...
面试是有技巧的,能救一个是一个
4176
9
...
0offer也不要焦虑,出门看看放松身心
4087
10
...
落魄女开发实习校招论文三手抓的日常
3866
正在热议
#
职场高情商速成班
#
2227次浏览
55人参与
#
机械制造薪资爆料
#
1150644次浏览
9409人参与
#
被同事甩锅了怎么办
#
13726次浏览
88人参与
#
大学最后一个寒假,我想……
#
2569次浏览
56人参与
#
我的实习求职记录
#
6502230次浏览
86289人参与
#
测测你的职业性格
#
28597次浏览
286人参与
#
我的简历长这样
#
2091709次浏览
28239人参与
#
通信硬件薪资爆料
#
762098次浏览
6129人参与
#
对未来的工作有什么期待
#
15356次浏览
150人参与
#
查收我的offer竞争力报告
#
97618次浏览
684人参与
#
如何一边实习一边秋招
#
1101466次浏览
13485人参与
#
职场吐槽大会
#
109577次浏览
894人参与
#
软件开发笔面经
#
2635778次浏览
47608人参与
#
嵌入式笔面经分享
#
200669次浏览
3406人参与
#
机械人怎么评价今年的华为
#
170797次浏览
1430人参与
#
你们的毕业论文什么进度了
#
860528次浏览
8685人参与
#
我的岗位说明书
#
122035次浏览
1184人参与
#
那些拿到大厂offer的简历长啥样
#
173423次浏览
2775人参与
#
如果不工作真的会快乐吗
#
66101次浏览
554人参与
#
上班后,你最大的变化是什么?
#
20891次浏览
252人参与
牛客网
牛客企业服务