读写锁:

写写、读写 是互斥的

读读是不需要互斥的

如下示例代码中,可以看到读的操作,一部分是在写操作之前,一部分是在写操作之后,说明读是不互斥的。写是

示例代码:

package com.debuggg.test1.main2;import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;/*** 作者 ZYL* 功能描述 : ReadWriteLock: 读写锁*  写写/读写 需要“互斥”*  读读 不需要互斥* 日期 2020-03-30 12:34* 参数 null* 返回值*/
public class TestReadWriteLock {public static void main(String[] args) {ReadWriteLockDemo lockDemo = new ReadWriteLockDemo();new Thread(() -> lockDemo.set(18) ,"write: ---------------------- ").start();for (int i = 0; i < 100; i++) {new Thread(() -> {lockDemo.get();},"read" + (i +1)).start();}}
}class ReadWriteLockDemo{private int number = 0;private ReadWriteLock lock = new ReentrantReadWriteLock();//读操作public void get(){lock.readLock().lock();try {System.out.println(Thread.currentThread().getName() + ":" + number);}finally {lock.readLock().unlock();}}//写操作public void set(int number){lock.writeLock().lock();try {System.out.println(Thread.currentThread().getName());this.number = number;}finally {lock.writeLock().unlock();}}
}

ReadWriteLock读写锁的使用相关推荐

  1. java多线程 -- ReadWriteLock 读写锁

    写一条线程,读多条线程能够提升效率. 写写/读写 需要"互斥"; 读读 不需要互斥. ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作.只要没有 ...

  2. 【Java锁体系】ReadWriteLock读写锁是什么?什么是读写锁

    [Java锁体系]ReadWriteLock读写锁场景 一.背景 像我们所知的ReentrantLock.synchronized关键字都是排它锁,这些锁在同一时刻只允许一个线程访问. 而读写锁允许在 ...

  3. GUC-9 ReadWriteLock : 读写锁

    import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWrit ...

  4. Java并发编程-ReadWriteLock读写锁

    1.ReadWriteLock介绍 为什么我们有了Lock,还要用ReadWriteLock呢.我们对共享资源加锁之后,所有的线程都将会等待.Lock读操作也锁,写操作也会锁,而对共享资源读的时候,其 ...

  5. ReadWriteLock读写锁加锁过程

    读写锁案例 + 小小总结 //读这篇文章的时候,建议先看一下,我并发专题中的 Lock.lock() 加锁的过程的文章 //我在写读写锁的时候,好多东西,好多理念都在lock()中体现 // 读读串行 ...

  6. java writelock 问题_【转】java并发编程系列之ReadWriteLock读写锁的使用

    前面我们讲解了Lock的使用,下面我们来讲解一下ReadWriteLock锁的使用,顾明思义,读写锁在读的时候,上读锁,在写的时候,上写锁,这样就很巧妙的解决synchronized的一个性能问题:读 ...

  7. java 可重入读写锁 ReentrantReadWriteLock 详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt206 读写锁 ReadWriteLock读写锁维护了一对相关的锁,一个用于只 ...

  8. java 单例 读写锁_终极锁实战:单JVM锁+分布式锁

    目录 1.前言 2.单JVM锁 3.分布式锁 4.总结 =========正文分割线================= 1.前言 锁就像一把钥匙,需要加锁的代码就像一个房间.出现互斥操作的典型场景:多 ...

  9. 读写锁ReadWriteLock和缓存实例

    读写锁:多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥.即:读的时候不允许写,写的时候不允许读,可以同时读. synchronized关键字和普通的Lock构造的锁,会造成读与读之间的互斥,因此读写锁 ...

最新文章

  1. HDOJ 1236 排名(练耐心题)
  2. 推荐系统笔记:基于非负矩阵分解的协同过滤
  3. Spring Cloud简介
  4. 他,TypeScript GitHub Star 上海第一,全国第四!GitHub 总标星超两万!
  5. W3C近期要闻:与Mozilla MDN合作联合开发Web平台文档
  6. Spring Cloud微服务系列-Eureka Client源码解析(一)
  7. 在libevent中使用线程池
  8. Java学习——对象和类
  9. fenby C语言 P17
  10. 电脑如何调整照片尺寸大小?证件照尺寸大小怎么调?
  11. 《贝叶斯统计》最大后验密度可信集(HPD)Python实现
  12. 逆天且实用,Python这些神操作你都会了嘛?
  13. php查询后台地址,dedecms 织梦后台查找方法【整理】
  14. pythonarcgis插件_【直播】基于Python开发ArcGIS插件:Python Add-in丨城市数据派
  15. Matlab——常用函数的用法总结(部分直接摘自mathwork,持续更新)
  16. Unity Gamma Linear Color Space
  17. 给正在转行互联网朋友们的一封信
  18. Android项目开发:指南针(两种方法实现)
  19. Android HorizontalScrollView 内容宽度
  20. Python中利用moviepy对视频进行剪辑以及拼接

热门文章

  1. CVE-2020-1472复现与完整利用
  2. 用命令来操作vSphere:十一 PowerCLI命令--虚拟机操作
  3. Oracle 远程 RAC 打造双活数据中心 | 从容灾迈向双活案例分享
  4. 什么事,是你当了领导才明白的?(转)
  5. 将 vCenter Server vSphere 软件从 VMware vSphere 6.5 升级到 6.7
  6. 已激活的windowns、office查看用的密钥
  7. Redis学习总结(16)——Redis 集群的5种使用方式,及各自优缺点对比分析
  8. Java虚拟机学习总结(1)——JVM内存模型
  9. Spring Boot学习总结(11)——SpringBoot的Starter依赖包及作用
  10. java 编程字体_Java 是否可以为整个应用程序设置自定义字体?