首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
12-09 17:46
联想_后端开发部_语音算法工程师(准入职员工)
海康威视内推,海康威视内推码
岗位:武汉 嵌入式开发timeline:8.30 测评,10.9 一面,10.11 二面一面技术:自我介绍讲下实习经历平常怎么debug项目中有没有遇到什么问题,怎么解决的介绍一下学校经历了解数据结构吗?基本的数据结构?查找搜索效率?有什么方法可以提高效率?具体围绕数据结构问了很多RTOS,多任务操作反问:做存储固件的,具体的进来再分二面HR:北京线下,地点在北京研发中心,具体内容就是唠家常,一些HR面的基本问题销售工程师工作体验,总结累但成长很多。1.大家最先关注的就是HIK的工作压力,只能说体面厂没有辜负盛名!名不虚传!我来这边是销售岗,基本上每天都要差不多11点下班。因为销售不仅需要对接...
点赞
评论
收藏
分享
12-09 15:30
门头沟学院 Java
成都java小厂 日常实习一面面经 25min
面试官很好,很温柔1.自我介绍2.集合有哪些3.ArrayList和LinkedList的区别4.set和ArrayList的区别5.set的底层6.hashmap的底层7.jmm8.为什么要用redis9.用redis主要干什么10.reids过期策略11.惰性删除有什么问题12.定时删除为啥不把key全部扫描一遍,要只扫描一部分13.redis持久化机制14.redis淘汰策略15.redis zset 结合项目介绍16.kafka顺序消费17.单例模式18.工厂模式19.策略模式20.常用的linux命令21.反问算法:算术平方根(保留整数)中序遍历二叉树
查看22道真题和解析
点赞
评论
收藏
分享
11-18 17:58
南昌大学 辅导教师
家人们,这种简历是不是注定找不到工作😭,银行四大行全挂了,城市商业银行过了两个,但是一面全挂了,现在想找实习也找不到,真不知道能做啥工作了,能给给意见嘛
金融银行求职进展汇总
点赞
评论
收藏
分享
昨天 17:10
老板电器_软件开发(准入职员工)
老板电器内推,老板电器内推码
老板电器 数据分析 面经9.24 一面 AI面 15mins1、自我介绍2、对老板电器有什么了解,为这次面试做了什么准备?3、最有成就感的一件事?4、社团学校活动?5、身边人对自己的评价?9.26 二面 2v2 30mins1、自我介绍2、为什么不去互联网公司,来制造业的公司?3、觉得互联网数分和制造业数分各有什么优缺点?4、数据干扰会怎么处理?5、自己有什么特质,能够胜任这份工作?6、期望薪资 全程氛围比较轻松,没有技术问题,感觉更偏向业务真实工作感受~🎈没有职场PUA~ 🎈没有办公室政治~ 🎈没有无缘无故扣工资~ 🎈没有恶性竞争~ 🎈没有穿小鞋~ 🎈没有讨厌的同事~ 谁懂,公...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
15
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
零经验也能斩获实习offer
7908
2
...
百度网盘Golang开发一面凉经
5008
数字马力交流圈
热聊中
3
...
小红书26校招Java二面85min
4644
4
...
0实习冲明年前端暑期,要不要找寒假实习?
4610
华为进展交流圈
热聊中
5
...
这环境。。。我来谈谈选择和长期主义
4007
6
...
工作两年裸辞读研,我后悔了吗···
3266
7
...
亲戚一张嘴,离职变丑闻
2463
8
...
成都java小厂 日常实习一面面经 25min
2177
9
...
LangChain4j(Java 版 LangChain)速成教学
2162
10
...
手子入职第二天
2148
创作者周榜
更多
正在热议
更多
#
找工作能把i人逼成什么样
#
4946次浏览
50人参与
#
面试尴尬现场
#
198742次浏览
753人参与
#
百融云创求职进展汇总
#
22336次浏览
145人参与
#
0经验如何找实习?
#
15197次浏览
298人参与
#
最难的技术面是哪家公司?
#
60096次浏览
937人参与
#
你今年做了几份实习?
#
4470次浏览
66人参与
#
腾讯音乐求职进展汇总
#
142990次浏览
1032人参与
#
字节出了豆包coding模型
#
4558次浏览
49人参与
#
你找工作经历过哪些骗局?
#
5601次浏览
100人参与
#
实习心态崩了
#
93811次浏览
487人参与
#
你开始找寒假实习了吗?
#
8608次浏览
136人参与
#
实习越久越好,还是多多益善?
#
11729次浏览
98人参与
#
25年找工作是什么难度?
#
8163次浏览
89人参与
#
一上班就想____,这正常吗?
#
2864次浏览
62人参与
#
刚工作,应该先搞钱or搞成长?
#
4639次浏览
67人参与
#
离职你会和父母说吗?
#
6279次浏览
86人参与
#
你投了多少家公司?进展是___
#
183370次浏览
1135人参与
#
如果公司降薪,你会跳槽吗?
#
109281次浏览
687人参与
#
实习必须要去大厂吗?
#
168347次浏览
1660人参与
#
你是怎么和mt相处的?
#
82513次浏览
436人参与
#
你会为了工作牺牲生活吗?
#
65048次浏览
446人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务