package java.util.concurrent.locks;
/**
* 线程独占的同步器。
* 这个类为创建锁和相关的同步器提供了基础,这些同步器可能需要一个所有权的概念。
* AbstractOwnableSynchronizer类本身并不管理或使用这些信息。
* 但是,子类和工具可以使用适当维护的值来帮助控制和监视访问并提供诊断。
*
* @since 1.6
* @author Doug Lea
*/
public abstract class AbstractOwnableSynchronizer
implements java.io.Serializable {
/** Use serial ID even though all fields transient. */
private static final long serialVersionUID = 3737899427754241961L;
/**
* 子类使用的空构造函数。
*/
protected AbstractOwnableSynchronizer() { }
/**
* 独占模式同步的当前所有者。
*/
private transient Thread exclusiveOwnerThread;
/**
* 设置当前拥有独占访问权的线程。
* null参数表示没有线程拥有访问权限。
* 否则,此方法不会强制执行任何同步或volatile字段访问。
*
* @param thread the owner thread
*/
protected final void setExclusiveOwnerThread(Thread thread) {
exclusiveOwnerThread = thread;
}
/**
* 返回setExclusiveOwnerThread上次设置的线程,如果没有设置,则返回null。
* 否则,该方法不会强制执行任何同步或volatile字段访问。
*
* @return the owner thread
*/
protected final Thread getExclusiveOwnerThread() {
return exclusiveOwnerThread;
}
}