ReadWriteLock读写锁的使用
读写锁:
写写、读写 是互斥的
读读是不需要互斥的
如下示例代码中,可以看到读的操作,一部分是在写操作之前,一部分是在写操作之后,说明读是不互斥的。写是
示例代码:
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读写锁的使用相关推荐
- java多线程 -- ReadWriteLock 读写锁
写一条线程,读多条线程能够提升效率. 写写/读写 需要"互斥"; 读读 不需要互斥. ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作.只要没有 ...
- 【Java锁体系】ReadWriteLock读写锁是什么?什么是读写锁
[Java锁体系]ReadWriteLock读写锁场景 一.背景 像我们所知的ReentrantLock.synchronized关键字都是排它锁,这些锁在同一时刻只允许一个线程访问. 而读写锁允许在 ...
- GUC-9 ReadWriteLock : 读写锁
import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWrit ...
- Java并发编程-ReadWriteLock读写锁
1.ReadWriteLock介绍 为什么我们有了Lock,还要用ReadWriteLock呢.我们对共享资源加锁之后,所有的线程都将会等待.Lock读操作也锁,写操作也会锁,而对共享资源读的时候,其 ...
- ReadWriteLock读写锁加锁过程
读写锁案例 + 小小总结 //读这篇文章的时候,建议先看一下,我并发专题中的 Lock.lock() 加锁的过程的文章 //我在写读写锁的时候,好多东西,好多理念都在lock()中体现 // 读读串行 ...
- java writelock 问题_【转】java并发编程系列之ReadWriteLock读写锁的使用
前面我们讲解了Lock的使用,下面我们来讲解一下ReadWriteLock锁的使用,顾明思义,读写锁在读的时候,上读锁,在写的时候,上写锁,这样就很巧妙的解决synchronized的一个性能问题:读 ...
- java 可重入读写锁 ReentrantReadWriteLock 详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt206 读写锁 ReadWriteLock读写锁维护了一对相关的锁,一个用于只 ...
- java 单例 读写锁_终极锁实战:单JVM锁+分布式锁
目录 1.前言 2.单JVM锁 3.分布式锁 4.总结 =========正文分割线================= 1.前言 锁就像一把钥匙,需要加锁的代码就像一个房间.出现互斥操作的典型场景:多 ...
- 读写锁ReadWriteLock和缓存实例
读写锁:多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥.即:读的时候不允许写,写的时候不允许读,可以同时读. synchronized关键字和普通的Lock构造的锁,会造成读与读之间的互斥,因此读写锁 ...
最新文章
- HDOJ 1236 排名(练耐心题)
- 推荐系统笔记:基于非负矩阵分解的协同过滤
- Spring Cloud简介
- 他,TypeScript GitHub Star 上海第一,全国第四!GitHub 总标星超两万!
- W3C近期要闻:与Mozilla MDN合作联合开发Web平台文档
- Spring Cloud微服务系列-Eureka Client源码解析(一)
- 在libevent中使用线程池
- Java学习——对象和类
- fenby C语言 P17
- 电脑如何调整照片尺寸大小?证件照尺寸大小怎么调?
- 《贝叶斯统计》最大后验密度可信集(HPD)Python实现
- 逆天且实用,Python这些神操作你都会了嘛?
- php查询后台地址,dedecms 织梦后台查找方法【整理】
- pythonarcgis插件_【直播】基于Python开发ArcGIS插件:Python Add-in丨城市数据派
- Matlab——常用函数的用法总结(部分直接摘自mathwork,持续更新)
- Unity Gamma Linear Color Space
- 给正在转行互联网朋友们的一封信
- Android项目开发:指南针(两种方法实现)
- Android HorizontalScrollView 内容宽度
- Python中利用moviepy对视频进行剪辑以及拼接
热门文章
- CVE-2020-1472复现与完整利用
- 用命令来操作vSphere:十一 PowerCLI命令--虚拟机操作
- Oracle 远程 RAC 打造双活数据中心 | 从容灾迈向双活案例分享
- 什么事,是你当了领导才明白的?(转)
- 将 vCenter Server vSphere 软件从 VMware vSphere 6.5 升级到 6.7
- 已激活的windowns、office查看用的密钥
- Redis学习总结(16)——Redis 集群的5种使用方式,及各自优缺点对比分析
- Java虚拟机学习总结(1)——JVM内存模型
- Spring Boot学习总结(11)——SpringBoot的Starter依赖包及作用
- java 编程字体_Java 是否可以为整个应用程序设置自定义字体?