ReentrantLock

2020-10-22  本文已影响0人  这是一个假的程序员
简单介绍

ReentrantLock 是一个可重入的独占锁

类型
private final Sync sync;

ReentrantLock 的内部类 Sync 继承了 AQSAbstractQueuedSynchronizer),并且有公平锁 FairSync 和 非公平锁 NonfaireSync 两个字类,ReentrantLock 的获取与释放锁操作都是委托给该同步组件来实现的
(注:该篇文章里所有 AQS 相关的内容会再写一篇相关的文章,这里不详细介绍)

常用方法介绍
Sync 内部类
abstract static class Sync extends AbstractQueuedSynchronizer {
  ...
}

Sync 是一个抽象类型,它继承 AbstractQueuedSynchronizer,这个 AbstractQueuedSynchronizer 是一个模板类,它实现了许多和锁相关的功能,并提供了钩子方法供用户实现,比如 tryAcquiretryRelease

static final class NonfairSync extends Sync {
    final void lock() {
        ...
    }
}
static final class FairSync extends Sync {
    final void lock() {
        ...
    }
}

NonfairSyncFairSync 两个类继承自 Sync ,实现了 lock 方法

上一篇 下一篇

猜你喜欢

热点阅读