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

两学一做电脑答题网站谷粉搜索谷歌搜索

两学一做电脑答题网站,谷粉搜索谷歌搜索,电子商务网站的建设心得体会,海外主机做黄色网站在Java中,为了在多线程并发场景下既保证线程安全,又尽可能提高性能,JVM针对synchronized实现了锁的优化升级机制。 锁可以从无锁逐步升级到偏向锁、轻量级锁,最后是重量级锁。 话不多说,发车! 一、无锁&am…

在Java中,为了在多线程并发场景下既保证线程安全,又尽可能提高性能,JVM针对synchronized实现了锁的优化升级机制。
锁可以从无锁逐步升级到偏向锁、轻量级锁,最后是重量级锁。
话不多说,发车!

一、无锁(Unlocked)

无锁,顾名思义,表示对象处于未加锁状态。
特点:对象正常状态,没有线程竞争。
适用场景:对象没有被任何线程加锁的情况下,大家可以自由访问。
性能:最快,不需要任何同步开销。
在jdk1.6之后默认是开启的

二、偏向锁(Biased Lock)

偏向锁是JDK 1.6引入的一种锁优化手段。
它假设大部分情况下,锁都是由同一个线程持有的,所以不做真正的同步操作,只在对象头中记录线程ID。
加锁流程:
第一个线程访问时,JVM会偏向该线程,记录它的线程ID。
后续该线程进入同步块时,只需快速判断对象头是否偏向自己即可,无需CAS或其他同步。
->什么时候会变成轻量级锁呢?
如果有另一个线程也尝试访问该对象,偏向锁会被撤销,进入轻量级锁阶段。

三、轻量级锁(Lightweight Lock)

轻量级锁是为了优化低竞争场景下的性能开销。
它通过CAS(Compare-And-Swap)操作,避免线程挂起和唤醒。
加锁流程:
线程在自己的栈帧中创建锁记录(Lock Record)。
尝试通过CAS,将对象头Mark Word指向自己的锁记录。
成功 → 轻松拿到锁。
失败(有竞争) → 可能膨胀为重量级锁。
解锁流程:
使用CAS把对象头恢复到原状态。
如果在锁期间没有其他线程参与竞争,解锁非常快。

四、重量级锁(Heavyweight Lock)

重量级锁是最传统、最可靠的锁机制,也叫做Monitor锁。
一旦竞争激烈,轻量级锁无法维持,就会膨胀成重量级锁。
加锁流程:
线程在获取锁失败后,挂起自己,进入阻塞状态。
等待持有锁的线程释放后,再重新被唤醒,竞争锁资源。

最后附上一张图,锁的升级流程
在这里插入图片描述

http://www.dtcms.com/wzjs/147511.html

相关文章:

  • 网站开发并发处理抖音seo代理
  • 做推广网站的文章中国足彩网竞彩推荐
  • 广州中企动力网站制作关键对话
  • wordpress 子菜单顺序关键词优化哪家强
  • 做网站要准备的资料怎么做网络广告推广
  • 网站SEO做点提升流量象客网站关键词排名查询
  • 帮朋友做网站 知乎网站营销网站营销推广
  • 网站建设运营策划书seo职业发展
  • 邢台网站建设信息网络营销策略的特点
  • 长宁区网站建设网站制如何结合搜索检索与seo推广
  • 且未县建设局网站新人学会seo
  • 做传奇开服一条龙网站哪个好太原网站制作推广
  • 网站空间如何续费开发网站用什么软件
  • 好看的网站模版肇庆网站制作软件
  • 网站风格怎么写营销推广与策划
  • github做网站速度快吗优化培训课程
  • 上海制造网站公司真实有效的优化排名
  • 做任务的网站sm济南优化哪家好
  • 做土地租赁买卖的网站有哪些深圳网站制作设计
  • 正规跨境电商平台有哪些优化清理大师
  • 彭水网站建设世界十大网站排名
  • 网站建设合同 完整版seo优化推广工程师招聘
  • 胡先煦回复秦海璐网页链接千度seo
  • 网站建设案例平台百度官方认证
  • 网站建设用的服务器seo优化诊断
  • 凡科做网站类型应该做哪个seo公司推广宣传
  • 本地搭建linux服务器做网站整站优化seo公司哪家好
  • 手机网站建设创意新颖网站如何提交百度收录
  • 怎么推广自己的网站链接百度知道首页登录
  • 不知道怎么选深圳关键词排名seo