Java核心复习——J.U.C AbstractQueuedSynchronizer

第一眼看到AbstractQueuedSynchronizer,通常都会有这几个问题。

  • AbstractQueuedSynchronizer为什么要搞这么一个类?
  • 这个类是干什么的、有什么用?
  • 这个类的实现原理是什么?

下面我边学边教,来解答这3个问题。

问题一:AbstractQueuedSynchronizer产生的背景

AbstractQueuedSynchronizer 我这里用简写AQS表示。如果开发者想自己定义一个同步器怎么写?Java程序员用C++写个同步器不现实,这时如果有一个用来写同步器的Java类,就显得很不错。AQS在juc类库构建起了很大的作用。

继承关系

789766-20190523094020738-1500410324.png

AbstractOwnableSynchronizer


public abstract class AbstractOwnableSynchronizer
    implements java.io.Serializable {

    /**
     * Empty constructor for use by subclasses.
     */
    protected AbstractOwnableSynchronizer() { }

    /**
     * The current owner of exclusive mode synchronization.
     */
    //独占模式下的线程
    private transient Thread exclusiveOwnerThread;

    // getter、setter
    protected final void setExclusiveOwnerThread(Thread thread) {
        exclusiveOwnerThread = thread;
    }

    protected final Thread getExclusiveOwnerThread() {
        return exclusiveOwnerThread;
    }
}


慢慢往下看。

参考文档

[1]: Java并发编程-看懂AQS的前世今生
[2]: java架构师成长之路-Java并发核心类AQS同步器原理分析
[3]: AbstractQueuedSynchronizer源码解析

转载于:https://www.cnblogs.com/fonxian/p/10871862.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值