蕾姆是我女神 level
获赞
2599
粉丝
13
关注
3
看过 TA
24
青州街男子职业技术学院
2018
Java
IP属地:河北
吾虽浪迹天涯。
私信
关注
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
2018-11-23 18:45
已编辑
青州街男子职业技术学院 Java
ReentrantReadWriteLock里的readLock有什么用? 看百度上有个人说这样能让多线程不阻塞进入临界区, 可是不加锁的话多线程不是都可以访问临界区吗? 如果阻塞的话怎么会出现线程安全问题…… 求大佬指点迷津,加读锁和不加读锁有啥区别。
Albertnet:读-写锁 (1)读写锁的出现原因:   ReentrantLock实现一种标准的互斥锁,每次最多只有一个线程能持有ReentrantLock,限制了并发性,互斥是一种保守的加锁策略,虽然避免了“写/写”冲突和“写/读”冲突,但也避免了“读/读”冲突,而大部分情况下读操作比较多,如果此时能够放宽加锁需求,允许多个读操作的线程同时访问数据结构,可以提升程序的性能(只要每个线程保证读取到最新的数据,并且在读取数据时不会有其他线程修改数据就行) (2)ReentrantLock提供的非互斥的读写锁的定义 1)一个资源可以被多个读操作访问,或者被一个写操作访问,但两者不能读写操作同时进行。2)读-写锁是一种性能优化措施,可以实现更高的并发性,提高程序的性能。3)当锁的持有时间较长并且大部分操作都不会修改被守护的资源时,读-写锁可以提高并发性。
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务