忽然想不通了,Java里的读写锁里的读锁有什么用?

ReentrantReadWriteLock里的readLock有什么用?
看百度上有个人说这样能让多线程不阻塞进入临界区,
可是不加锁的话多线程不是都可以访问临界区吗?
如果阻塞的话怎么会出现线程安全问题……
求大佬指点迷津,加读锁和不加读锁有啥区别。
全部评论
读读不互斥,读写互斥,写写互斥
3
送花
回复
分享
发布于 2017-09-02 22:40
防止读的时候其他线程写,允许读的时候其他线程读
2
送花
回复
分享
发布于 2017-09-02 22:35
秋招专场
校招火热招聘中
官网直投
读-写锁 (1)读写锁的出现原因:   ReentrantLock实现一种标准的互斥锁,每次最多只有一个线程能持有ReentrantLock,限制了并发性,互斥是一种保守的加锁策略,虽然避免了“写/写”冲突和“写/读”冲突,但也避免了“读/读”冲突,而大部分情况下读操作比较多,如果此时能够放宽加锁需求,允许多个读操作的线程同时访问数据结构,可以提升程序的性能(只要每个线程保证读取到最新的数据,并且在读取数据时不会有其他线程修改数据就行) (2)ReentrantLock提供的非互斥的读写锁的定义 1)一个资源可以被多个读操作访问,或者被一个写操作访问,但两者不能读写操作同时进行。2)读-写锁是一种性能优化措施,可以实现更高的并发性,提高程序的性能。3)当锁的持有时间较长并且大部分操作都不会修改被守护的资源时,读-写锁可以提高并发性。
2
送花
回复
分享
发布于 2017-09-03 08:02
加读锁应该是防止在写入的时候读取,防止读取脏数据
1
送花
回复
分享
发布于 2020-03-10 17:18
总的来说 读写互斥和读锁共享,再来说场景 单/多线程 1、单线程:锁可重入(多个读或多个写) 2、多线程:当前线程读阻塞其他线程写,当前线程写阻塞其他线程读写
1
送花
回复
分享
发布于 2021-11-28 17:38
加了读锁别的线程如果要加写锁就阻塞了呀
点赞
送花
回复
分享
发布于 2017-09-02 22:42
处理高并发
点赞
送花
回复
分享
发布于 2017-09-02 23:57
h_b吧
点赞
送花
回复
分享
发布于 2017-09-03 00:04
等你用到的时候就理解了
点赞
送花
回复
分享
发布于 2017-09-03 01:26
读锁:共享锁 写锁:排它锁
点赞
送花
回复
分享
发布于 2017-09-03 02:00
请求读锁的线程进去之后,其他请求读锁线程可以继续进入。但此时,请求写锁的线程不能进入,会被阻塞,直到所有请求读锁的线程结束之后,才有可能进入。
点赞
送花
回复
分享
发布于 2017-09-03 07:43
关键理解是同一锁对象 :用同一个锁对象, 在加了写锁的代码块执行期间,能阻塞 对该锁对象加写锁,当然也阻塞了写锁加锁和解锁之间的代码块的执行。
点赞
送花
回复
分享
发布于 2018-11-23 18:28
加读锁,保证可重复读。  加写锁,自己写,也阻塞别人读,因为数据正在改动。
点赞
送花
回复
分享
发布于 2020-12-04 23:00
刚学到这里,回复下自己的看法。因为读写锁锁住的不是共享资源,而是临界区,临界区里是对共享资源的操作,读写锁能控制多线程里的临界区对于共享资源访问的动作,但是不能控制共享资源不被别人访问。没有在锁住的临界区内的其它的线程依旧可以访问共享资源。所以如果不加读锁就会导致写的时候,共享资源被读。有此类问题的朋友可以试着写一下代码跑一下看看。
点赞
送花
回复
分享
发布于 2022-02-16 22:54

相关推荐

头像
不愿透露姓名的神秘牛友
04-26 22:18
已编辑
TP-LINK普联 软件开发 白菜价 n×(12~16) 本科985
点赞 评论 收藏
转发
点赞 15 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1152954次浏览 17157人参与
# 通信和硬件还有转码的必要吗 #
11237次浏览 101人参与
# OPPO开奖 #
19316次浏览 268人参与
# 和牛牛一起刷题打卡 #
19098次浏览 1635人参与
# 实习与准备秋招该如何平衡 #
203508次浏览 3628人参与
# 大厂无回复,继续等待还是奔赴小厂 #
5003次浏览 32人参与
# 不去互联网可以去金融科技 #
20721次浏览 259人参与
# 通信硬件薪资爆料 #
266071次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2236次浏览 34人参与
# 互联网公司评价 #
97747次浏览 1280人参与
# 简历无回复,你会继续海投还是优化再投? #
25041次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
454973次浏览 5125人参与
# 国企和大厂硬件兄弟怎么选? #
53928次浏览 1013人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14648次浏览 349人参与
# 硬件人的简历怎么写 #
82298次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19413次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
28499次浏览 248人参与
# 学历对求职的影响 #
161281次浏览 1804人参与
# 你收到了团子的OC了吗 #
538878次浏览 6389人参与
# 你已经投递多少份简历了 #
344334次浏览 4963人参与
# 实习生应该准时下班吗 #
97027次浏览 722人参与
# 听劝,我这个简历该怎么改? #
63530次浏览 622人参与
牛客网
牛客企业服务