千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java编程开发偏向锁与轻量级锁的特点

java编程开发偏向锁与轻量级锁的特点

来源:千锋教育
发布人:syq
时间: 2023-02-22 18:29:00 1677061740

  Java中的偏向锁和轻量级锁都是为了提高多线程并发操作的性能。

  偏向锁是指,当只有一个线程访问同步块时,JVM会将这个线程ID记录在锁对象的Mark Word中,下次该线程再访问同步块时,直接进入同步状态,不需要做任何同步操作,从而提高了性能。偏向锁主要适用于只有一个线程访问同步块的场景。当有多个线程访问同步块时,偏向锁会自动撤销。

java编程开发偏向锁与轻量级锁的特点

  轻量级锁是指,当只有一个线程访问同步块时,JVM会在该线程的栈帧中创建一个锁记录(Lock Record),将锁对象的Mark Word复制到锁记录中,并将锁对象的Mark Word更新为指向锁记录的指针。这样,当该线程再次进入同步块时,不需要做任何同步操作,直接进入同步状态。当有多个线程访问同步块时,轻量级锁会自动膨胀成重量级锁。

  轻量级锁相对于重量级锁而言,减少了线程间的竞争和上下文切换,提高了多线程并发操作的性能,但是在多线程并发操作较为频繁的场景下,会出现自旋等待的情况,会降低性能。因此,选择使用偏向锁和轻量级锁还需要根据具体的应用场景进行综合考虑。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT