Java ReadWriteLock原理及适用场景详细介绍是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2203个文字,预计阅读时间需要9分钟。
Java并发编程提供了读写锁,主要用于读多写少的场景。读写锁不是Java特有的读写锁(Readers-Writer Lock),它将一把锁分为两部分:读锁和写锁。读锁允许多个线程同时读取,而写锁则确保写操作时的独占性。
Java并发编程提供了读写锁,主要用于读多写少的场景
什么是读写锁?
读写锁并不是JAVA所特有的读写锁(Readers-Writer Lock)顾名思义是一把锁分为两部分:读锁和写锁,其中读锁允许多个线程同时获得,因为读操作本身是线程安全的,而写锁则是互斥锁,不允许多个线程同时获得写锁,并且写操作和读操作也是互斥的。
所谓的读写锁(Readers-Writer Lock),顾名思义就是将一个锁拆分为读锁和写锁两个锁。
其中读锁允许多个线程同时获得,而写锁则是互斥锁,不允许多个线程同时获得写锁,并且写操作和读操作也是互斥的。
为什么需要读写锁?
Synchronized和 ReentrantLock 都是独占锁,即在同一时刻只有一个线程获取到锁。
然而在有些业务场景中,我们大多在读取数据,很少写入数据,这种情况下,如果仍使用独占锁,效率将及其低下。
针对这种情况,Java提供了读写锁——ReentrantReadWriteLock。
本文共计2203个文字,预计阅读时间需要9分钟。
Java并发编程提供了读写锁,主要用于读多写少的场景。读写锁不是Java特有的读写锁(Readers-Writer Lock),它将一把锁分为两部分:读锁和写锁。读锁允许多个线程同时读取,而写锁则确保写操作时的独占性。
Java并发编程提供了读写锁,主要用于读多写少的场景
什么是读写锁?
读写锁并不是JAVA所特有的读写锁(Readers-Writer Lock)顾名思义是一把锁分为两部分:读锁和写锁,其中读锁允许多个线程同时获得,因为读操作本身是线程安全的,而写锁则是互斥锁,不允许多个线程同时获得写锁,并且写操作和读操作也是互斥的。
所谓的读写锁(Readers-Writer Lock),顾名思义就是将一个锁拆分为读锁和写锁两个锁。
其中读锁允许多个线程同时获得,而写锁则是互斥锁,不允许多个线程同时获得写锁,并且写操作和读操作也是互斥的。
为什么需要读写锁?
Synchronized和 ReentrantLock 都是独占锁,即在同一时刻只有一个线程获取到锁。
然而在有些业务场景中,我们大多在读取数据,很少写入数据,这种情况下,如果仍使用独占锁,效率将及其低下。
针对这种情况,Java提供了读写锁——ReentrantReadWriteLock。

