文档章节

java并发-ReadWriteLock代码理解

萧默
 萧默
发布于 2019/12/14 16:11
字数 407
阅读 3
收藏 0

创建的ReadWriteLock需要使用两个方法来继续创造2个对象,分别是ReadLock和WriteLock。

这两个锁对象的方法调用都会汇聚到ReadWriteLock的Sync类中。多个对象的方法调用汇聚到一个对象上面,这个设计模式是?

1.当线程获得写锁,那么其他线程必须阻塞

2.当线程获得读锁,那么其读线程可以获得读锁,写线程必须阻塞

采用一个同步队列,如何保证让不同类型的线程都停止下来呢?

如果一个线程要获得读锁,那么就先看头结点是否是读锁,如果是,那么可以获得锁。如果不是,那么就阻塞自己。

如果一个线程要获得写锁,那么就先看头结点是否是写锁,如果是,那么就可以获得锁,不过不是,那么就阻塞自己。

当一个线程释放读锁,而没有其他的线程获得读锁,那么就通知同步队列的下一个线程,让其醒来尝试获取锁。如果有其他的线程持有读锁,那么就什么也不做,把自己移除同步队列即可。

当一个线程释放写锁,也是类似的。

© 著作权归作者所有

萧默
粉丝 0
博文 43
码字总数 19380
作品 0
杭州
程序员
私信 提问
JDK基础--Java中的锁概念

Java中的锁概念 掌握Java中锁是Java多线程编程中绕不开的知识,只有知道理解Java各种锁才能在编码过程中灵活运用,写出更高效的多线程程序。而理解掌握锁的第一步,可从宏观上对比理解一下各...

spinachgit
2019/04/16
41
0
17《Java核心技术》之synchronized底层如何实现?什么是锁的升级、降级?

一、提出问题 我们在上一篇中对比和分析了 synchronized 和 ReentrantLock,算是进入并发编程阶段的热身,相信你已经对线程安全,以及如何使用基本的同步机制有了基础,今天我们将深入了解 ...

飞鱼说编程
2018/11/12
27
0
Android 面试必备 - 线程

前言 最近准备更新 Android 面试必备基础知识系列,有兴趣的可以关注我的微信公众号 stormjun94,有更新时,第一时间会在微信公众号上面发布,同时,也会同步在 GitHub 上面更新,如果觉得对...

gdutxiaoxu_
2019/08/04
0
0
Java中Lock框架学习笔记

锁在多线程编程中有很重要的作用,synchronized比较常见也很常用,但是Lock提供了更广泛的锁操作,处理多线程同步的问题也更加优雅和灵活,Java从Java SE 5之后在并发包中提供Lock接口。 一、...

writeademo
2018/04/04
27
0
面试系列-并发编程72道面试题及答案

话不多说直接上题,篇幅限制,文末有答案 1.Java中守护线程和本地线程区别 2.线程与进程的区别 3.什么是多线程中的上下文切换 4.死锁与活锁的区别,死锁与饥饿的区别 5.Java中用到的线程调度...

Java邵先生
2019/01/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kettle自定义jar包供javascript使用

我们都知道 Kettle 是用 Java 语言开发,并且可以在 JavaScript 里面直接调用 java 类方法。所以有些时候,我们可以自定义一些方法,来供 JavaScript 使用。 本篇文章有参考自:https://www...

CREATE_17
昨天
102
0
处理CSV文件中的逗号

我正在寻找有关如何处理正在创建的csv文件的建议,然后由我们的客户上传,并且该值可能带有逗号(例如公司名称)。 我们正在研究的一些想法是:带引号的标识符(值“,”值“,”等)或使用|...

javail
昨天
79
0
如何克隆一个Date对象?

将Date变量分配给另一个变量会将引用复制到同一实例。 这意味着更改一个将更改另一个。 如何实际克隆或复制Date实例? #1楼 简化版: Date.prototype.clone = function () { return new ...

技术盛宴
昨天
73
0
计算一个数的数位之和

计算一个数的数位之和 例如:128 :1+2+8 = 11 public int numSum(int num) { int sum = 0; do { sum += num % 10; } while ((num = num / 10) > 0); return sum;......

SongAlone
昨天
124
0
为什么图片反复压缩后普遍会变绿,而不是其他颜色?

作者:Lion Yang 链接:https://www.zhihu.com/question/29355920/answer/119088684 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 业余版概要:安卓的...

shzwork
昨天
81
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部