java synchronized 关键字(1)对象监视器为Object
在java多线程中 synchronized 是非常重要的,也是经常用到的
对于synchronized关键字要注意两点
synchronized对象监视器为Object的时候
synchronized对象监视器为Class的时候
对象监视器为Object
也就是synchronized锁定的是对象
例如下面代码
public class A {
synchronized public void MethodA(){
System.out.println("this is MethodA");
}
synchronized public void MethodB(){
System.out.println("this is MethodB");
}
public void MethodC(){
System.out.println("this is MethodC");
}
}
创建对象 a 和b
A a = new A();
A b = new A();
1
2
当两个线程分别调用 a.MethodA() 和 a.MethodB() 的时候 这两个方法是不能同时执行的,因为synchronized 锁的是a 这个对象,a 里面被synchronized 关键字标记的方法只能串行,也就是同一时间只有一个synchronized 标记的方法能运行。a.MethodA() 运行 b.MethodB()就要等待,
但a.MethodC()可以运行,因为MethodC没有被标记,属于非现成安全。不受关键字影响。
a.MethodA()和b.MethodA() 可以同时运行,因为synchronized锁的是对象,a和b属于两个对象,所以有两把锁分别锁a和b,但相互之间不受影响。
---------------------
作者:瘦包子
来源:CSDN
原文:https://blog.csdn.net/baolijuncool/article/details/53327028
版权声明:本文为博主原创文章,转载请附上博文链接!
java synchronized 关键字(1)对象监视器为Object相关推荐
- Java Synchronized 关键字
本文内容 Synchronized 关键字 示例 Synchronized 方法 内部锁(Intrinsic Locks)和 Synchronization 参考资料 下载 Demo Synchron ...
- java的同步关键字_简单了解Java synchronized关键字同步
简单了解Java synchronized关键字同步 发布于 2021-1-13| 复制链接 摘记: synchronized synchronized可以用来同步块,同步方法.同步块可以用来更精确 ...
- java synchronized关键字
引用其他人的一段话 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchro ...
- java synchronized关键字_Java:手把手教你全面学习神秘的Synchronized关键字
前言 在Java中,有一个常被忽略 但 非常重要的关键字Synchronized 今天,我将详细讲解 Java关键字Synchronized的所有知识,希望你们会喜欢 目录 示意图 1. 定义 Jav ...
- java synchronized关键字锁和锁类型、锁升级过程讲解
概述 synchronized是java的一个关键字,用于对方法或者代码块添加一个同步锁,以实现操作的原子性,保证线程安全性,但是却会带来一些性能上的损耗. 这个关键字添加的是可重入锁,也就是同一个线 ...
- java synchronized关键字_Java synchronized 关键字,你用的对吗?
for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread.getName + " " + i) ...
- JAVA synchronized关键字锁机制(中)
synchronized 锁机制简单的用法,高效的执行效率使成为解决线程安全的首选. 下面总结其特性以及使用技巧,加深对其理解. 特性: 1. Java语言的关键字,当它用来修饰一个方法或者一个代码块 ...
- Java学习之路---对象篇(Object)
什么是对象? Java是一种面向对象的语言,那么什么是对象呢?我们将问题空间中的元素及其在解空间中的表示称之为"对象". "万物皆对象":将对象视为一个变量,可 ...
- Java synchronized关键字实现线程同步
⭐写在前面⭐
最新文章
- 计算机网页div怎么划分,《网页布局与实现(DIV+CSS)》
- 决胜蓝桥杯python组-集合、字典
- win10连接VMWare下的Ubutun系统进行FPT文件传输
- 俄罗斯套娃(JOISC 2016 Day 1)
- z-index 绝对定位的盒子居中
- JavaSE复习_6 枚举类
- 如何制作macOS Big Sur 系统启动U盘
- 多媒体数字互动技术的应用有哪些?
- spider-admin-pro 一个集爬虫Scrapy+Scrapyd爬虫项目查看 和 爬虫任务定时调度的可视化管理工具
- 前端处理简单的XSS(跨站脚本攻击)防护
- WT588F02B-8S(芯片代码C001_01)语音芯片在化妆品/保健品/食品行业保质期和使用期得应用解决方案
- PWM(脉冲宽度调制)信号原理
- 安卓手机投屏安卓ADB群控自动化脚本命令
- 【Xilinx】如何根据芯片封装尺寸绘制3D模型
- tcpdump命令解析
- razer鼠标测试软件,那伽梵蛇2014版鼠标驱动及测试_雷蛇鼠标_键鼠评测-中关村在线...
- 注塑机摆放间距多少合适_选用注塑机的基本原则
- linux系统出现BUG:softlockup- CPU#7 STUCK FOR 22s 等字样的解决办法并永久生效
- ARM体系结构的存储器格式
- 微信小程序通过低功耗蓝牙设备进行定位及测距(二)
热门文章
- 利用curl验证ssl网站(webservice)
- (转载)DevExpress ASPxGridView 使用文档六:模板
- 689 Maximum Sum of 3 Non-Overlapping Subarrays
- 【软考】[信息安全工程师]
- hihocoder A Game 区间dp
- python爬取知乎live_python爬虫——xml数据爬取
- Eclipse export导出war包报错(Module name is invalid.)
- 安利一款编辑神器——Markdown
- win7里面计算机叫什么,Win7电脑中的mrt.exe是甚么文件
- python程序中想使用正则表达式_python中正则表达式的使用方法