java基础

JAVA之AQS

2021-07-11  本文已影响0人  isLJli

AQS的概述

AbstractQueuedSynchronizer简述为AQS,是一个抽象队列锁类,通过继承实现AQS的同步类,可以像Synchronized一样进行锁操作。
AQS定义了两种资源共享模式:

AQS的实现:
AQS使用一个int型state值和CAS来进行模拟锁状态实现,通过一个内置的Node队列来存储没有获取锁的线程并且已经实现了队列的入队和释放通知功能。
并通过模版方法设计模式,把独占共享锁一些通用的调用流程。
AQS类提供了state值和CAS的调用方法:

AQS类获取和释放锁的重写方法:

上一篇下一篇

猜你喜欢

热点阅读