计算机共享原理,synchronize底层原理 游戏电脑问题解决分享!

sync

1 package com.paddx.test.concurrent;

2

3 public class SynchronizedDemo {

4 public void method() {

5 synchronized (this) {

6 System.out.println("Method 1 start&quot😉;

7 }

8 }

9 }

反编译结果:

270f017a5d180a88ecbffa65b762ad09.png

关于这两条指令的作用,我们直接参考JVM规范中描述:

monitorenter :

Each object is associated with a monitor. A monitor is locked if and only if it has an owner. The thread that executes monitorenter attempts to gain ownership of the monitor associated with objectref, as follows:

• If the entry count of the monitor associated with objectref is zero, the thread enters the monitor and sets its entry count to one. The thread is then the owner of the monitor.

• If the thread already ow

• If another thread already owns the monitor associated with objectref, the thread blocks until the monitor's entry count is zero, then tries again to gain ownership.

这段话的大概意思为:

每个对象有一个监视器锁(monitor)。当monitor被占用时就会处于锁定状态,线程执行monitorenter指令时尝试获取monitor的所有权,过程:

1、如果monitor的进入数为0,则该线程进入monitor,然后将进入数设置为1,该线程即为monitor的所有者。

2、如果线程已经占有该monitor,只是重新进入,则进入monitor的进入数加1.

3.如果其他线程已经占用了monitor,则该线程进入阻塞状态,直到monitor的进入数为0,再重新尝试获取monitor的所有权。

monitorexit:

The thread that executes monitorexit must be the owner of the monitor associated with the instance referenced by objectref.

The thread decrements the entry count of the monitor associated with objectref. If as a result the value of the entry count is zero, the thread exits the monitor and is no longer its owner. Other threads that are blocking to enter the monitor are allowed to attempt to do so.

这段话的大概意思为:

执行monitorexit的线程必须是objectref所对应的monitor的所有者。

指令执行时,monitor的进入数减1,如果减1后进入数为0,那线程退出monitor,不再是这个monitor的所有者。其他被这个monitor阻塞的线程可以尝试去获取这个 monitor 的所有权。

通过这两段描述,我们应该能很清楚的看出Synchronized的实现原理,Synchronized的语义底层是通过一个monitor的对象来完成,其实wait/notify等方法也依赖于monitor对象,这就是为什么只有在同步的块或者方法中才能调用wait/notify等方法,否则会抛出java.lang.IllegalMonitorStateException的异常的原因。

我们再来看一下同步方法的反编译结果:

源代码:

1 package com.paddx.test.concurrent;

2

3 public class SynchronizedMethod {

4 public synchronized void method() {

5 System.out.println("Hello World!&quot😉;

6 }

7 }

反编译结果:

270f017a5d180a88ecbffa65b762ad09.png

从反编译的结果来看,方法的同步并没有通过指令monitorenter和monitorexit来完成(理论上其实也可以通过这两条指令来实现),不过相对于普通方法,其常量池中多了A

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/cpbaike/409967.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】广东开放大学 财政学 形成性考核 (43)

选择题 题目:现代财政学诞生的标志( )。 题目:( )由于公共产品存在非竞争性和非排他性,任何消费者即使不付出任何代价也可免费享受公共产品的好处。 题目:在公共产品与私人产…

单元测试反模式,完整列表

我前段时间写过有关OOP中的反模式的文章 。 现在该写单元测试反模式了,因为它们也存在,并且有很多。 我将尝试在列表中包括我知道的每个示例。 如果您认识其他任何人,请通过请求请求将其添加,或在下面发表评论。 对于每个反模式&a…

大学计算机——所有大学生都应学习的一门计算思维基础教育课程,_大学计算机_所有大学生都应学习的一门计算思维基础教育课程...

中国大学教学 2011年第4期“大学计算机”——所有大学生都应学习的一门计算思维基础教育课程战德臣 聂兰顺 徐晓飞摘 要:当前,大学非计算机专业计算机课程存在知识型/技能型教学与未来计算能力需求之间的鸿沟,致使计算机教育存在危机。本文分…

【渝粤题库】广东开放大学 文化产业概论 形成性考核

选择题 题目:目前关于文化产业的定义有以下()几种 题目:根据《文化及相关产业指标体系框架》,文化产业具体可划分为() 题目:中国的文化产业在发展过程中,出现了以下&…

【渝粤题库】广东开放大学 金融经济学 形成性考核

选择题 题目:( )理论认为,现实中的个体和企业经理人面临着风险或不确定性。 答案: A、计量经济学 B、微观经济学 C、宏观经济学 D、金融经济学 题目:以下不属于个体可用的融资工具是( …

【渝粤题库】陕西师范大学180105 推销策略 作业(高起专)

一、填空 1、现代推销理念的核心是 需要。 2、按照推销方格理论, 的推销心理是最理想的。 3、收集推销信息的方法,主要有: 、观察法和实验法。 4、对顾客购买力评价是指组织或个人 的审查。 5、推销洽谈的报价原则是 。 6、在不熟悉推销对象的…

控制计算机价格,本人对电脑不太懂。想十一买台笔记本电脑。价格控制在5000之内。请高手指点一下。谢谢!...

你好朋友,要达到你的需求,至少应该满足三点,一是15.6尺寸;二是I5以上处理器,三是大容量内存,最好是6-8G的。你选择的两款,第一款已经停产,第二款还不错,新架构处理器&…

amazon云服务_亚马逊Simple Worklfow服务的骆驼演示

amazon云服务在上一篇文章中,我解释了为什么AWS SWF服务很好,并宣布了新的Camel SWF组件。 现在,组件文档已准备就绪, 这是一个简单的完全可用的演示。 它包含三个独立的独立骆驼路线: 工作流生产者允许我们与工作流进…

【渝粤题库】陕西师范大学200401 初等代数研究 作业(专升本)

《初等代数研究》作业 一。填空题 1.第一数学归纳法的内容是____________. 2.函数的值域是_________. 3.函数的定义域是__________. 4.函数在内的反函数是 . 5.模的剩余类具有的性质是(至少写出两条&#x…

js结合css3,使用JS和CSS3实现的旗帜飘扬动画

CSS语言:CSSSCSS确定body {padding: 0px;margin: 0px;background-color: black;text-align: center;position: absolute;top: 0px;bottom: 0px;left: 0px;right: 0px;overflow: hidden;}#canvas {position: relative;padding: 0px;height: 320px;width: 480px;margi…

【渝粤题库】陕西师范大学200991教育统计学作业(高起本)

《教育统计学》作业(教育学) 一、名词解释 分层抽样描述统计集中量统计表总体和样本二列相关参数小概率事件中位数统计量和参数回归分析相关关系 二、填空题 1.从变化方向上看,两个变量之间的相关类型有正相关、 、 。 2.教育统计资料的来源…

【渝粤题库】陕西师范大学202007 高等数学(二) 作业

《高等数学(二)》作业 一、判断题 1、两向量夹角的范围为[0,π]。 ( ) 2、 向量a∥b当且仅当ab0。 ( ) 3、若在点处的偏导数存在,则在点处的方向导数存在。 ( ) 4、加上、…

功能Java示例 第6部分–用作参数

这是称为“ Functional Java by Example”的系列文章的第6部分。 我在本系列的每个部分中发展的示例是某种“提要处理程序”,用于处理文档。 在前面的部分,我们试图通过移动尽可能多的副作用,如IO,该系统的外部,以使我…

【渝粤题库】陕西师范大学202801 中国古代文学(五) 作业

一、选择题 1、元代出现了一大批杂剧的优秀作家,《析律志》说:“生而倜傥,博学能文,滑稽多智,蕴藉风流,为一时之冠”的作家是( ): A.王实甫 B.关汉卿 C.马致远 D.高明…

【渝粤题库】陕西师范大学210010 幼儿园管理学 作业(高起专、专升本)

《幼儿园管理学》考评作业 一、填空题 (1)我国学前教育各级机构权限的划分制度是 、 、 。 (2)管理内容的五大要素是 、 、 、 、 。 (3)幼儿园总务工作的特点是 、 、 、 。 (4)园长…

【渝粤题库】陕西师范大学292281中央银行学Ⅰ作业(高起专)

一、单选题 中央银行之所以成为中央银行,最基本、最重要的标志( )。 A. 集中存款准备金 B. 集中与垄断货币发行 C. 充当“最后贷款人” D. 代理国库( )是当今世界上最富于全球代表性和影响力的政府间国际金融组织&…

【渝粤题库】陕西师范大学500004 电动力学

《电动力学》作业 一. 单项选择题 半径为R的均匀磁化介质球,磁化强度为,则介质球的总磁矩为 A. B. C. D. 0 真空中做匀速直线运动的电荷不能产生 A. 电场 B. 磁场 C. 电磁辐射 D. 位移电流 线性介质中磁场的能量密度为 A. B. C. D. 磁场的矢量势是依据…

【渝粤题库】陕西师范大学800001 自然地理学

《自然地理学》作业 一.填空题 1.分隔地幔和地核的不连续界面是 。   2.摩氏硬度是7的矿物是 ,该矿物具有的光泽是 。   3.按照地震的成因不同,地震可分为 、 和 三种…

系统属性的JDK 12 Javadoc标记

JDK 12 Early Access Build 20 ( 2018/11/15 )可用,可以用来试用新的Javadoc标签{systemProperty} 。 新的{systemProperty} Javadoc标记在core-libs-dev邮件列表消息“ FYI:用于文档系统属性的新javadoc标记 ”中进行了讨论&…

国家开放大学2021春1079高等代数专题研究题目

教育 教育 试卷代号:1079 2021年春季学期期末统一考试 高等代数专题研究 试题 2021年7月 一、单项选择题(本题共20分,每小题4分) 1.下列运算中,( )是有理数域Q上的代数运算. A.a。ba B.a。bb …