当前位置: 首页 > news >正文

黑马JVM总结(三十七)

(1)synchronized-轻量级锁-无竞争

(2)synchronized-轻量级锁-锁膨胀

重量级锁就是我们前面介绍过的Monitor enter

(3)synchronized-重量级锁-自旋

(4)synchronized-偏向锁

 

轻量级锁会有锁重入的情况,当调用完method1后在 调用method2它会,在一次CAS修改mark为线程1锁记录地址,自己跟自己还要执行这个就没有必要了

进一步优化,利用偏向锁

单个线程偏向锁工作挺好,但是另外有线程进行竞争了,偏向锁就会被撤销,撤销之后会升级为轻量级锁

(5)synchronized-其他优化

ConcurrentHashMap数组的链表头上加锁,锁住的是链表头,原来是HashTable锁住的是整个HashTable,读写操作完全忽视了,锁住链表头加锁的粒度就变小了,每次锁住一个链表,其他链表的读写操作不会受到影响 

读的读原始数据内容,写的话复制一份在一个新数组上进行写,读操作不需要操作的,只要同步写

http://www.lryc.cn/news/195713.html

相关文章:

  • 企业如何通过媒体宣传扩大自身影响力
  • 处理vue直接引入图片地址时显示不出来的问题 src=“[object Module]“
  • vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
  • java正则表达式 及应用场景爬虫,捕获分组非捕获分组
  • 基于 Debian 稳定分支发行版的Zephix 7 发布
  • MBR20100CT-ASEMI肖特基MBR20100CT参数、规格、尺寸
  • 修炼k8s+flink+hdfs+dlink(五:安装dockers,cri-docker,harbor仓库)
  • github: kex_exchange_identification: Connection closed by remote host
  • AWS香港Web3方案日,防御云安全实践案例受关注
  • QT 集成MQTT过程
  • GeoServer改造Springboot启动五(解决接口返回xml而不是json)
  • 在unity中给游戏物体一个标记
  • 【黑马程序员】机器学习
  • flutter card 使用示例
  • 推荐算法:是否对用户判断能力有影响!!!
  • 【OpenVINO】OpenVINO C# API 常用 API 详解与演示
  • django无法导入第三方库
  • 7-k8s-helm管理
  • 零基础怎么样才能学好 Python?Python 入门必看
  • 1.X3-Warming up
  • 【23真题】两电一邮之一,难度骤降!24可能回升!
  • 持续集成部署-k8s-资源调度:DaemonSet
  • RabbitMQ内容
  • 搭建一个vscode+uni+vue的小程序项目
  • 处理ElementUI组件默认样式多次重复问题
  • 配置hpa后,target显示<unknown>/50%
  • 用java实现抖音授权登录
  • Atlassian午餐会直播回顾:如何在Jira中进行项目时间与成本管理?
  • 屏幕时代的数字化信息管理:从传统到纯软件的转变
  • Stm32_标准库_14_串口蓝牙模块_解决手机与蓝牙模块数据传输的不完整性