聊聊Synchronized
以前记得被问到一个面试题,问synchronized(obj){} 和 synchronized(xx.class){}有什么区别。当时还答的不好。
用比喻来说,java内置锁(Monitor)就像一个毛坑,第一种情况这个毛坑存在于obj中,一个对象只有一个毛坑,这个毛坑被一个线程占了那其他的线程就必须排队。但对于不用的对象,每个对象的毛坑是独立的,也就是线程1和线程2可以同时占住obj1和obj2的毛坑,这两个可以并发并不会互相排斥。
而第二种情况这个毛坑存在于Class对象中。Class对象应该就一个,所以所有线程只能一个一个地在这段同步代码块上排队,是完全排他的。
While a thread is executing a method of a thread-safe object, it is said to occupy the object, by holding its mutex (lock). Thread-safe objects are implemented to enforce that at each point in time, at most one thread may occupy the object.
转载于:https://www.cnblogs.com/zjhgx/p/8557473.html
聊聊Synchronized相关推荐
- 从青铜到王者,来聊聊 Synchronized 底层实现原理 | 原力计划
作者 | IT贱男 责编 | 夕颜 出品 | CSDN(ID:CSDNnews) 引言 这篇文章码了小编***个小时,点个赞不过分吧-- 文本内容有点多,如果有写错或者不好地方,还请多多指教----- ...
- 聊聊Synchronized和Lock
目录 Synchronized和Lock的区别 阻塞线程状态不同 Synchronized实现原理 锁的是对象,而非代码 monitorenter和monitorexit指令 JDK6的锁优化 锁消除 ...
- 大牛手把手教你!一起来聊聊Synchronized底层实现原理
前言 Java作为最全面的语言,国内开发者也是最多的,Java综合起来各方面都不错,在大部分场景下是一种稳健的技术选择.加上近年来安卓的推动,目前也是最流行的一种语言. 现在Java的就业市场看起来还 ...
- 第十二章:synchronized与锁升级
相关面试题 锁优化背景 Synchronized 锁性能变化 jdk5 以前 复习:为什么任意一个对象都能成为锁? jdk6 之后 synchronized的种类以及锁升级流程 锁升级流程 无锁 偏向 ...
- 虾皮面试真题:虾皮后端15连问!
大家好,我是不才陈某~ 最近有位读者去虾皮面试啦,分享一下面试的真题~ 排序链表 对称与非对称加密算法的区别 TCP如何保证可靠性 聊聊五种IO模型 hystrix 工作原理 延时场景处理 https ...
- Java内存模型基础学习(二)——絮叨一下可见性
文章目录 前言 可见性 什么是可见性 JMM的抽象 happens-before原则 什么是happens-before happens-before的规则 实例解析 volatile关键字 vola ...
- 多线程与高并发整理总结【超全面】
我们先说一下为什么要讲多线程和高并发? 原因是,你想拿到一个更高的薪水,在面试的时候呈现出了两个方向的现象: 第一个上天 项目经验 高并发.缓存.大流量.大数据量的架构设计 第二个入地 各种基础算法, ...
- 密码锁 java接口_从synchronized和lock区别入手聊聊java锁机制
写这篇文章之前,我去百度了一下啥叫锁,百度百科上写道:置于可启闭的器物上,以钥匙或暗码开启.确实我们一般理解的锁就是门锁,密码锁,但是在计算机科学中,锁又是啥,说实话,这个问题我也思考了很久,也没法很 ...
- synchronized底层原理_你用过synchronized吗?它的底层原理是什么?Java经典面试题来了...
并发编程已经成为程序员必备技能 作为Java程序员,不懂得并发编程显然已经不能满足市场需求了,尤其是在面试过程中将处于被动地位,也有可能面试将就此终结. 那么作为Java开发者的你,日常虽然可以基于J ...
最新文章
- Android 录音功能直接拿去用
- js禁止用户右键等操作
- wdatepicker设置初始时间_滑动条的滑块的初始位置应该放在哪儿?
- ASP.NET程序中常用代码汇总(一)
- 【IOS 开发】Objective - C 语法 之 流程控制
- Apache Log4j2 RCE 命令执行漏洞预警及修复方案
- 为什么越来越多的程序员开始学机器学习?揭秘一个重要原因
- ios手机 php无法上传文件,【已解决】uni.uploadFile 苹果ios图片上传不成功
- 线性表之顺序表与单链表的区别及优缺点
- POJ 2185 Milking Grid (KMP,GCD)
- 编程修养 阅读笔记三
- DX12之手撸GPU Driven Pipeline
- 在word中怎么实现奇数页页眉用本章标题,偶数页用论文标题?
- 黄一老师:关于个人征信这几点你都未必知道!
- 一张图学《计算机组成原理(硬件篇)》 思维导图 计算机组成
- python 3.x语句print_Python 3.x语句print(1,2,3,sep=’.’)
- Luvwgyx的娱乐场-题解
- 阻容感基础10:电感器分类(2)-功率电感器
- 测试人员想做游戏测试,你一定要知道这几点!
- 在php中将Unicode字符转成中文
热门文章
- mysql表格的代码_mySQL表格内容用代码添加
- php 打开报错,php模式下 运行start.php 报错
- group by是否会用到索引_平时工作中经常用到的SQL,这些你都知道吗?
- 数据备份 另一服务器_狡兔三窟-数据备份
- shell命令卸载mysql_centos8中的MySQL卸载和安装
- 外链对网站SEO优化起什么作用?
- 网站权重增长缓慢,优化技巧是关键!
- 温度单闭环实验计算机控制,过程控制系统实践指导简介,目录书摘
- linux密码修改时间,linux 查看、修改用户及密码过期时间(示例代码)
- python批量ping50台服务器_Python小技巧—批量ping的方法