getState()返回java.util.concurrent.locks.Condition的值

时间:2014-01-29 18:44:59

标签: java multithreading conditional-statements

AbstractQueuedSynchronizer 类是 java.util.concurrent.locks.Condition 接口的基类,它有一个名为getState()的函数

  

protected final int getState()

     

返回同步状态的当前值。该操作具有>的存储器语义。不稳定的阅读。

     

返回:

     

当前状态值

这个函数返回条件的当前状态,我假设它是等待,超时等待,中止,以int形式发出信号。有谁知道我在哪里可以找到getState()函数的整数定义?

2 个答案:

答案 0 :(得分:3)

“州”值的含义取决于子类 - 来自JavaDocs

  

此类旨在成为依赖单个原子int值表示状态的大多数同步器的有用基础。子类必须定义更改此状态的受保护方法,并根据要获取或释放的此对象定义该状态的含义

(我的大胆)

答案 1 :(得分:0)

com.google.common.util.concurrent.AbstractFuture.Sync

中找到
/* Valid states. */
static final int RUNNING = 0;
static final int COMPLETING = 1;
static final int COMPLETED = 2;
static final int CANCELLED = 4;
static final int INTERRUPTED = 8;

虽然接口通常不描述实现细节,但是值可能与其他实现中的不同事件相关联。