首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
还没有回复哦~
相关推荐
11-14 13:30
海南省国兴中学 Java
Boss一面
实习详细说一下异步任务优化这个实习任务请你画一下异步任务调用图,以及你优化的是哪个步骤注册任务的细节唤醒任务的细节java基础HashMap细节数组和链表的区别java并发sychonize的三种锁线程池的拒绝策略各种拒绝策略适用的业务场景是否会抛异常讲一下sychonizejvm垃圾回收算法G1和ZGCZGC的三个虚拟内存空间算法删除数组的特定字符的元素
查看12道真题和解析
点赞
评论
收藏
分享
11-14 09:45
已编辑
门头沟学院 Java
小厂面经分享
1.hashmap是线程安全的吗2.了解过 CurrentHashMap 吗3.springmvc 处理请求流程4.说一下 aop 和 ioc5.有用过 aop 吗6.线程池怎么创建7.你用过的是哪种线程池8.线程池可以用来干嘛9.redis 有哪些数据结构10.项目中哪些地方用到这些数据结构11.redis 持久化12.mvcc13.linux 的编辑文件命令 #面经Java#
查看26道真题和解析
点赞
评论
收藏
分享
11-04 08:22
湖南财政经济学院 Java
27届找实习
求问:27届找Java开发实习学完微服务够用吗?
程序员卤馆:
理论上不用微服务都够了,项目吃透其实是要花很多时间的,不是说看一遍视频就觉得自己会了,学原理背八股和刷算法题也是要很多时间的。
点赞
评论
收藏
分享
11-04 17:35
已编辑
中国农业大学 Java
秋招现在还有机会吗?
秋招差不多10月才开始投,陆陆续续到目前为止才投了50多家公司,应该有接近7-8家公司面试,基本一面挂,1家二面挂,1家hr面挂,感觉好多公司都没多少hc了,现在还有机会在12月之前拿到offer吗? #你的秋招简历被谁挂了?# #秋招#
你的秋招简历被谁挂了?
点赞
评论
收藏
分享
11-13 16:39
门头沟学院 Java
面试7 - 美团 - Java开发
AI面1、什么是VLAN,有什么作用2、解释Linux运行队列runqueue如何查看运行3、解释一下 MySQL 联合索引的最左匹配原则?为什么会有这个限制?在设计和使用联合索引时,你会如何考虑这个原则来优化查询性能?4、介绍一下 Spring MVC 处理请求和响应的流程。5、什么是 Java 里的 NIO new IO?它与传统 IO 有什么区别?6、设计一个简单的电子邮件发送系统,支持批量发送和模板管理。请描述你的系统架构和主要流程。7、你设计了一个使用 MySQL 和 Springboot 的电子邮件发送系统,支持批量发送和模板管理,并通过消息队列实现异步发送。在這個系统中,你是如何处理邮件發送失败的情况的?比如说,如果某些邮件由于网络问题或其他原因没有成功发送,你會采取什么措施来确保这些邮件最终能够被成功发送?8、描述一次你通过重构代码或优化性能而学到新知识的经历过程中有哪些困难?你是怎么克服的?9、你能详细描述一下你在阅读 PageHelper 源码时,具体是如何理解它的工作原理的吗?有哪些关键的实现细节让你印象深刻?10、描述一个你成功地将一个想法转化为实际行动的例子,你是如何规划和执行的?遇到了哪些障碍?如何克服的?11、你描述了如何通过团队合作和学习新知识,成功完成了一项语音模型的专利申请。在这个过程中,你具体是如何组织和协调团队成员的日常任务的?能否详细谈谈你采取了哪些具体行动来确保项目的顺利推进?一面(挂了)1、自我介绍2、在上家公司做了优化工作是指哪些工作,Saas平台开发优化,指的是性能优化吗还是(并没有写,没答)3、Spring Cloud架构拆分前后的对比4、在拆分的过程中有没有遇到过什么比较典型的问题?对于你来说还是有挑战的。5、微服务配置这块在拆分中遇到了什么问题(涉及到公共配置和私有化配置)6、缺失配置导致服务起不起来,公共包依赖冲突问题7、介绍一下Redis在项目中的应用和Redis支持的数据类型,存储结构8、Redis的持久化怎么样的,区别是什么9、Redis和MySQL的数据一致性怎么保障的10、介绍Java中常用的集合11、HashSet特点,扩容机制12、红黑树的特点13、HashMap怎么保证线程安全14、线程池的目的,怎么使用,拒绝策略15、Java里的多态是什么,介绍一下方法重载和重写16、介绍Java的基本数据结构17、值传递和引用传递的区别18、异常有几种,了解过哪些,处理异常的思路
查看29道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
15
分享
评论
提到的真题
返回内容
全站热榜
1
...
cpp选手秋招之路
7496
2
...
终于等到度子offer | 附上秋招总结
6473
3
...
一路有雨也有霜,一诺冒险就得闯
5747
4
...
成功不见得是金子
5429
5
...
成功把秋招的5个offer变成了0个
3494
6
...
华为开奖
3004
7
...
汇丰科技oc
2971
8
...
allin党终于熬出来了
2872
9
...
警惕秋招陷阱:内推码
2808
10
...
拼多多又没动静了
2385
正在热议
#
25届秋招总结
#
446793次浏览
4560人参与
#
春招别灰心,我们一人来一句鼓励
#
43217次浏览
545人参与
#
地方国企笔面经互助
#
8132次浏览
18人参与
#
同bg的你秋招战况如何?
#
79265次浏览
581人参与
#
实习必须要去大厂吗?
#
55995次浏览
962人参与
#
虾皮求职进展汇总
#
119106次浏览
902人参与
#
如果你有一天可以担任公司的CEO,你会做哪三件事?
#
12071次浏览
307人参与
#
实习,投递多份简历没人回复怎么办
#
2456890次浏览
34873人参与
#
提前批简历挂麻了怎么办
#
150206次浏览
1980人参与
#
在找工作求抱抱
#
906820次浏览
9425人参与
#
如果公司给你放一天假,你会怎么度过?
#
4808次浏览
57人参与
#
你投递的公司有几家约面了?
#
33246次浏览
188人参与
#
投递实习岗位前的准备
#
1196774次浏览
18553人参与
#
机械人春招想让哪家公司来捞你?
#
157725次浏览
2267人参与
#
双非本科求职如何逆袭
#
663131次浏览
7397人参与
#
发工资后,你做的第一件事是什么
#
13118次浏览
62人参与
#
工作中,努力重要还是选择重要?
#
36444次浏览
388人参与
#
简历中的项目经历要怎么写?
#
87089次浏览
1517人参与
#
参加完秋招的机械人,还参加春招吗?
#
20230次浏览
240人参与
#
我的上岸简历长这样
#
452337次浏览
8091人参与
牛客网
牛客企业服务