java并发中的ReentrantReadWriteLock
来源:互联网 发布:手机pdf编辑软件 编辑:程序博客网 时间:2024/06/05 07:05
- ReadWriteLock:
ReadWriteLock是一个接口,在它里面只定义了两个方法:
public interface ReadWriteLock { Lock readLock(); Lock writeLock(); }
readLock()用来获得读锁,writeLock()用来获取写锁。
- ReentrantReadWriteLock
ReentrantReadWriteLock是ReadWriteLock接口的唯一实现,其中最主要的两个方法就是readLock()和writeLock()
- ReentrantReadWriteLock作用:
支持多个读线程进行并发操作,但每次只允许一个写线程,可以将写锁理解为独占锁,每次只允许一个线程获得锁。并且进行读-写操作,写-写操作不能同时进行。
- 一个简单例子
import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * Created by I am master on 2017/10/3. */public class TestReentrantReadWriteLock { private ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); private Lock lock = rwl.readLock(); public static void main(String[] args) { final TestReentrantReadWriteLock test = new TestReentrantReadWriteLock(); new Thread(){ public void run() { test.get(Thread.currentThread()); } }.start(); new Thread(){ public void run() { test.get(Thread.currentThread()); } }.start(); } public void get(Thread thread) { rwl.readLock().lock(); try { long start = System.currentTimeMillis(); while(System.currentTimeMillis() - start <= 1) { System.out.println(thread.getName()+"正在进行读操作"); } System.out.println(thread.getName()+"读操作完毕"); } finally { rwl.readLock().unlock(); } }}
运行结果的一部分:
Thread-0正在进行读操作Thread-0正在进行读操作Thread-0正在进行读操作Thread-0正在进行读操作Thread-0正在进行读操作Thread-0正在进行读操作Thread-0正在进行读操作Thread-0正在进行读操作Thread-0正在进行读操作Thread-1正在进行读操作Thread-0正在进行读操作
说明两个线程在同时进行读操作
阅读全文
0 0
- java并发中的ReentrantReadWriteLock
- Java并发之ReentrantReadWriteLock
- Java并发-ReentrantReadWriteLock源码分析
- Java 并发 ---ReentrantReadWriteLock源码分析
- java并发编程(五)--Java中的锁(读写锁ReentrantReadWriteLock)
- 喻红叶《Java并发-ReentrantReadWriteLock源码分析》
- 【Java并发】- ReentrantReadWriteLock,读写锁原理
- Java并发学习(十三)-ReentrantReadWriteLock学习
- java ReentrantReadWriteLock
- [java并发]读写锁ReentrantReadWriteLock里面的FairSync 和 NonfairSync
- java读写锁ReentrantReadWriteLock实现多并发单利模式
- 【Java并发编程实战】—–“J.U.C”:ReentrantReadWriteLock
- 【Java并发编程实战】—–“J.U.C”:ReentrantReadWriteLock
- java并发锁ReentrantReadWriteLock读写锁源码分析
- 【Java并发编程实战】-----“J.U.C”:ReentrantReadWriteLock
- java 并发类semaphore countdownlatch cyclicbarrier reentrantlock condition reentrantreadwritelock
- Java并发编程艺术——ReentrantReadWriteLock(读写锁)
- Java多线程编程-(7)-使用ReentrantReadWriteLock实现Lock并发
- AMD、CMD模块化规范
- 试题5:从尾到头打印链表
- 创建 Rex-Ray volume
- AndroidStudio小白入门——艰难地打开AndroidStudio,JAVA_HOME不存在以及/dev/kvm is not found
- 60. Permutation Sequence
- java并发中的ReentrantReadWriteLock
- 第十九课(一) 使用存储过程
- sql优化(1)
- LeetCode 62
- vmware下的ubuntu磁盘空间不够用,如何扩容
- 原码,反码,补码详解及 Java中>>和>>>的区别
- sql优化(2)
- equals和hashCode
- java笔试面试题