page contents

AQS 底层使用了模板方法模式,你能说出几个需要重写的方法吗?

轩辕小不懂 发布于 2022-01-25 10:56
阅读 700
收藏 0
分类:Java开发
2978
Nen
Nen
- 程序员

使用者继承 AbstractQueuedSynchronizer 并重写指定的方法。将 AQS 组合在自定义同步组件的实现中,并调用其模板方法,而这些模板方法会调用使用者重写的方法。

isHeldExclusively() :该线程是否正在独占资源。只有用到 condition 才需要去实现它。

tryAcquire(int) :独占方式。尝试获取资源,成功则返回 true,失败则返回 false。

tryRelease(int) :独占方式。尝试释放资源,成功则返回 true,失败则返回 false。

tryAcquireShared(int) :共享方式。尝试获取资源。负数表示失败;0 表示成功,但没有剩余可用资源;正数表示成功,且有剩余资源。

tryReleaseShared(int) :共享方式。尝试释放资源,成功则返回 true,失败则返回 false。

请先 登录 后评论