大家好,我是锋哥。今天分享关于 【ReadWriteLock 是什么 ?】面试题,希望对大家有帮助;
ReadWriteLock 是什么 ?
首先明确一下,不是说 ReentrantLock 不好,只是 ReentrantLock 某些时候有局限。
如果使用 ReentrantLock,可能本身是为了防止线程 A 在写数据、线程 B 在 读数据造成的数据不一致,但这样,如果线程 C 在读数据、线程 D 也在读数据,读数据是不会改变数据的,没有必要加锁,但是还是加锁了,降低了程序的性能。
1000道 互联网大厂Java工程师 精选面试题-Java资源分享网
因为这个,才诞生了读写锁 ReadWriteLock。ReadWriteLock 是一个读写锁接口,ReentrantReadWriteLock 是 ReadWriteLock 接口的一个具体实现,实现了读写
的分离,读锁是共享的,写锁是独占的,读和读之间不会互斥,读和写、写和读、写和写之间才会互斥,提升了读写的性能。