当前位置:   article > 正文

JUC系列(八)| 读写锁-ReadWriteLock_juc的读写锁怎么用

juc的读写锁怎么用

多线程一直Java开发中的难点,也是面试中的常客,趁着还有时间,打算巩固一下JUC方面知识,我想机会随处可见,但始终都是留给有准备的人的,希望我们都能加油!!!

沉下去,再浮上来,我想我们会变的不一样的。

在这里插入图片描述
一个非常喜欢的女孩子拍的照片
作者:次辣条吗

一、读写锁

1)概述:

我们开发中应该能够遇到这样的一种情况,对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是当一个写者线程在写这些共享资源时,就不允许其他线程进行访问。

针对这种场景,Java的并发包下提供了读写锁 ReadWriteLock(接口) | ReentrantReadWriteLock(实现类)。

读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。我们将读操作相关的锁,称为读锁,因为可以共享读,我们也称为“共享锁”,将写操作相关的锁,称为写锁、排他锁、独占锁每次可以多个线程的读者进行读访问,但是一次只能由一个写者线程进行写操作,即写操作是独占式的。

读写锁适合于对数据结构的读次数比写次数多得多的情况. 因为, 读模式锁定时可以共享, 以写模式锁住时意味着独占, 所以读写锁又叫共享-独占锁

public interface ReadWriteLock {
	// 读锁
    Lock readLock();
	// 写锁
    Lock writeLock();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

ReentrantReadWriteLock这个得自己去看哈,这里给出一个整体架构哈 本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】

推荐阅读
相关标签