【JDK】JDK源码分析-AbstractQueuedSynchronizer(3)

其实二者的操作大部分是类似的,理解了前面对独占模式的分析,再分析共享模式就相对容易了。

 

共享模式

 

方法概述

 

与独占模式类似,共享模式下也有与之类似的相应操作,分别如下:

 

1. acquireShared(int arg): 以共享模式获取资源,忽略中断;

 

2. acquireSharedInterruptibly(int arg): 以共享模式获取资源,响应中断;

 

3. tryAcquireSharedNanos(int arg, long nanosTimeout): 以共享模式获取资源,响应中断,且有超时等待;

 

4. releaseShared(int arg): 释放资源,唤醒后继节点,并确保传播。

 

它们的操作与独占模式也比较类似,下面具体分析。

 

方法分析

 

1. 共享模式获取资源(忽略中断)

 

acquireShared:

public final void acquireShared(int arg) { // 返回值小于 0,表示获取失败 if (tryAcquireShared(arg) < 0) doAcquireShared(arg); } // 尝试以共享模式获取资源(返回值为 int 类型) protected int tryAcquireShared(int arg) { throw new UnsupportedOperationException(); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgysf.html