Advertisement

锁分类与synchronized核心机制

阅读量:

文章结构概述

  • 一、JAVA中锁的相关概念
      • 1、自旋锁

      • 2、乐观锁

      • 3、悲观锁

      • 4、独占锁(写操作)

      • 5、共享锁(读操作)

        • ReadWriteLock
      • 6、可重入锁与不可重入锁

      • 7、公平锁与非公平锁

    • 二、synchronized的实现机制

      • 1、Java对象在堆内存中的存储结构
      • 2、轻量级锁机制
      • 3、重量级锁机制
      • 4、偏向锁机制
      • 5、锁状态的升级流程
      • 6、重量级锁 - 监视器(monitor)

一、JAVA中锁的概念

1、自旋锁

当某一进程试图获取锁时,若该锁已被其他进程占用,则当前进程将进入循环等待状态,持续检测锁是否可被成功获取,直至成功获得锁后才终止循环。

自旋锁主要存在两种应用方式:
1、在AtomicIneger相关场景中,自旋机制用于对变量进行修改,直接通过CAS操作实现
2、如以下形式所示,利用自旋方式实现了一种锁定机制

复制代码
    public class Demo2_SpinLock {
    private AtomicReference<Thread> owner = new AtomicReference<Thread>

全部评论 (0)

还没有任何评论哟~