首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
08-12 12:25
南京邮电大学 产品经理
26秋招oppo
oppo简历筛选到底啥标准啊看好多92佬简历就挂了慌得不行,本来都想放弃了今天突然收到oppo的面试邀请但是主包没有任何大厂实习经历当攒面试经验了hhhh
点赞
评论
收藏
分享
08-13 15:57
门头沟学院 嵌入式工程师
禾赛科技嵌入凉经
1.自我介绍2.CAN总线仲裁机制 3.TCP协议发送什么,三次握手? 4.编译后数据有哪些存储位置 5.static全局和局部分别储存在哪里 6.字节对齐有什么优点记不太清了,面试过程感觉脑袋蒙蒙的,所以挂掉了
查看5道真题和解析
点赞
评论
收藏
分享
08-12 15:40
南京信息工程大学 Java
秋招简历
投了很多都没反应,实习经历是编的,能不能看看哪里出问题了
也许是天气_:
实习这块全是假大空像AI生成的,没有实际内容。要体现出难点、亮点、解决问题的过程
点赞
评论
收藏
分享
08-12 19:37
门头沟学院 Java
26届秋招建议
算法可以参考如上,主要是hot100和面试题150,以及部分LCR题目。性价比最高,就赌刷原题,如果有时间,要参加竞赛,那么可以考虑参加周赛稳定三题的水平很够用,已经是10%左右的水准。相关技术栈准备参考如下内容1. Java核心基础深入:集合框架(HashMap底层、ConcurrentHashMap优化)、多线程(线程池参数、锁优化、AQS)、JVM(内存模型、GC调优、类加载机制)、IO/NIO。新特性:熟悉Java 8+的Stream API、Lambda、CompletableFuture等,部分公司会问Java 17+的新特性(如虚拟线程)。源码阅读:尝试阅读ArrayList、H...
va学弟会遇到大厂吗:
mark
给26届的秋招建议
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
15
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
嵌入式秋招上岸记,用5W1H把offer“烧”进简历里
6391
2
...
如何提高秋招面试成功率?
6391
3
...
个人对八股的认识
4195
4
...
给26届小伙伴们一些建议
3275
5
...
秋招第一个offer 附tl
2390
6
...
25届上班一个多月真不想上了,也不敢离职
1986
7
...
拿到实习工资就给豹豹猫猫买了两台新手机
1885
8
...
京东笔试(离AK最近的一次,可惜)
1770
9
...
26 秋招|开始邮集
1727
10
...
拼多多笔试
1612
创作者周榜
更多
正在热议
更多
#
秋招笔面试记录
#
254718次浏览
4186人参与
#
面试太紧张了怎么办?
#
2487次浏览
69人参与
#
你被mentor骂过吗?
#
6023次浏览
41人参与
#
一人推荐一个机械人值得去的公司
#
419175次浏览
4178人参与
#
实习需要主动找活干吗?
#
2073次浏览
23人参与
#
饿了么求职进展汇总
#
66565次浏览
649人参与
#
生物制药2023笔面经
#
9559次浏览
49人参与
#
扒一扒那些奇葩实习经历
#
75106次浏览
957人参与
#
下班后的时间你怎么安排
#
32367次浏览
307人参与
#
2025,我想......
#
68056次浏览
596人参与
#
00后45度躺现状
#
108729次浏览
600人参与
#
现在还是0offer,延毕还是备考
#
1089738次浏览
7594人参与
#
如果工作一直消耗情绪还要继续做吗
#
7541次浏览
60人参与
#
我遇到过的超难机械面试题
#
9706次浏览
61人参与
#
校招第一份工作你干了多久?
#
101771次浏览
449人参与
#
牛客周边新品开箱
#
8411次浏览
86人参与
#
机械人,你最希望上岸的公司是?
#
174683次浏览
1869人参与
#
美的求职进展汇总
#
292201次浏览
1970人参与
#
我和mentor的爱恨情仇
#
64890次浏览
391人参与
#
机械人值得去的国央企
#
72561次浏览
439人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务