当前位置:首页 > Java知识 > 正文内容

java并发包作者(java并发执行代码)

abcsky887个月前 (10-30)Java知识88

本篇文章给大家谈谈

Java并发编程锁系列之ReentrantLock对象总结在Java并发编程中,根据不同维度来区分锁的话,锁可以分为十五种ReentranckLock就是其中的多个分类本文主要内容:重入锁理解;重入锁代码演示; ReentranckLock的总结。

java并发包作者(java并发执行代码)

本篇是《凯哥(凯哥Java:kagejava)并发编程学习》系列之《Lock系列》教程的第四篇:《Java并发包下锁学习第六篇:ReentranckLock的总结》。我们先来看看内部结构:

ReentranckLock内部有三个内部类,分别是:Sync:继承了AbstractQueuedSynchronizer(AQS)同步器的内部类网站的推广方法怎么写,来实现同步机制的;FairSync:公平锁对象;NonfairSync:非公平锁对象。

关于公平锁与非公平锁详细介绍文章见:《Java并发编程锁之独占公平锁与非公平锁比较》和《Java并非锁之独占非公平锁理解》两篇文章再来看看对象名称:Reentranck的中文意思:再入、重入的意思即该对象还是重入锁。

公平锁和非公平锁在获取锁的区别在于:公平锁获取锁的时候,进入排队。源码如下图:

非公平锁线尝试插队,如果插队不成功再进行排队。源码如下图:

那么什么是重入锁呢?重入锁(递归锁)可以理解为:同一个线程函数获得锁之后,内层递归函数依然能够获取到该锁对象的代码,也即,在同一个线程的外层方法访问的时候,获取网站的推广方法怎么写到了锁,在进入内层方法后能够自动获取到锁线程可以进入任何一个它已经拥有的锁所同步着的代码块。

额,说的啥意思?每个中文都认识,但是组合在一起,就不知道啥意思了我们来举个生活中的例子:在现实生活中,我们一般只需要带有自己大门的钥匙(当然,如果是合租的朋友还需要带着自己房间的钥匙)当我们开了大门的钥匙,进入房间后,我们在去厨房或者是去卫生间的时候,不用在拿钥匙开厨房或者卫生间的门了吧。

为啥呢?因为我们已经已经有大门的锁的钥匙并且已经进入到了房间了厨房和卫生间已经在大门锁管理的范围内了这种场景站在并发锁的角度来看的话:一同一个线程函数获得锁之后(你拿着钥匙打开了大门之后),内层递归函数依然能够获取到该网站的推广方法怎么写锁对象的代码(进入房间后,房间内的厨房卫生间可以随便出入)。

这样是不是就好理解了?如果还是不理解的话,可以想想spring默认的事务传递方式一个方法开启了事务,默认这个方法调用其他方法,也会使用这个事务这样是不是就好理解了重入锁代码演示先来看看,被线程操作的资源类:message对象。

在message对象中,sendMsg使用了锁,sendEmail方法也使用了锁,而且在sendMesg方法中调用了sendEmail方法。这个时候使用三个线程来操作:

运行结果:

我们从运行的结果中,可以看出,同一个线程操作了两个带有锁的方法说明ReentrantLock是可重入锁总结:经过前面几篇及本篇的学习,我网站的推广方法怎么写们可以对ReentrantLock(以下简称:RLock)得到如下总结。

1:从线程是否需要对资源进行加锁方面来看的话,RLock是悲观锁;2:从锁是否需要排队的公平性来区分的话,RLock的FairSync对象是公平锁而NonfairSync对象是非公平锁;3:从多个线程能共享一把锁的角度来分的话RLock属于排他锁(独占式锁);

从锁是否重复获取角度来看,属于可重入锁举报/反馈

扫描二维码推送至手机访问。

版权声明:本文由海南拓宏网络科技工作室发布,如需转载请注明出处。

本文链接:http://4blc.com/post/808.html

分享给朋友:

“java并发包作者(java并发执行代码)” 的相关文章

eureka.client.enabled(eureka.client.enabled=false)

今天给各位分享 大家好,我是悟空最近在倒腾 Eureka 源码,大环境太卷了,必须得卷点源码才行,另外呢,能够读懂开源项目的源码、解决项目中遇到的问题是实力的象征,是吧?如果只是会用些中间件,那是不够的,和 CRUD 区别不大。 话不多说,源码走起本篇是 Eureka 源码...

为啥面试完要等两三天(为啥面试要问有没有对象呢)

本篇文章给大家谈谈 如果说不问行为就难辨高低,那么没有追问就没有真相在面试中,精准地提问只是第一步,想要了解应聘者的行为事例是否真实,还需要通过深度追问来掌握真相基于人才画像的STAR方法,是面试官应该掌握的深度追问技巧基于STAR的追问很重要,但不能漫无目的,要基于岗位的人才画像...

教师招聘笔试分数低面试有可能逆袭吗(教师招聘笔试差十分面试有希望吗)

本篇文章给大家谈谈 教师招聘考试面试并不是很简单,但是找对方法,找对技巧,能为面试加分想要在教师招聘考试面试中高分通过教师招聘考试面试并不是很简单,但是找对方法,找对技巧,能为面试加分想要在教师招聘考试面试中高分通过我们自然需要做一些准备,今天远拓教育就跟大家说说教师招聘考试面试中...

23江苏高考分数线(普通话报名官方入口2023江苏)

本篇文章给大家谈谈 原标题:23江苏五年制专转本三江学院计算机科学与技术专业 江苏五年制专转本三江学院计算机科学与技术专业C 语言程序设计计算机基础理论专业科目是由所报考的院校进行出卷,所以即使报考专业相同,主考院校不同,考试的类型、重点及录取分数线和人数都是不同的,学生需...

javascript与java区别(javascript 和 java)

本篇文章给大家谈谈 现在有很多自学Java的同学不知道javascript和Java有什么关系?那么javascript和Java有什么关系呢?以下是我的回答,希望对大家有所帮助。 Java和JavaScript是两门不同的编程语言一般认为,当时 Netscape 之所以将...

tiobe编程语言排行榜2021年9月(编程语言最新排行榜tiobe)

本篇文章给大家谈谈 IT之家 1 月 7 日消息,软件测试公司 Tiobe 会跟踪软件开发人员所使用编程语言,并每月根据流行程度来发布榜单在今天公布了 2023 年 1 月编程语言排行榜中,该公司评选 C++ 成为 2022 年度最佳编程语言。 今年的亚军是第二大最受欢迎的...