Android 面试题目之 关于AbstractQueuedSynchronizer的注解翻译


关于AbstractQueuedSynchronizer的注解翻译:

 

提供一个框架来实现阻塞锁和相关同步器(信号量,事件,等),这个框架依赖于先入先出等待队列(FIFO)。

 

这个类设计作为很多同步器的基础,这些同步器都依赖于一个原子的(atomic)整形(int)来代表状态。子类必须定义受保护的方法来改变这个状态。子类也必须定义当这个对象被获取或者释放时,这个状态的意义。有了这些,这个类的其他方法实现所有的排队和阻塞机制。子类可以维护自己的状态,但是只有使用getState,setSate, compareAndSetState更新的整型状态才会被同步地(synchronization)监视。

 

子类应该定义非公用的内部帮助类来实现包装类同步属性。

AbstractQueuedSynchronizer 不实现任何同步的接口.相反,它定义了一些方法,例如acquireInterruptibly 可以被适当调用来作为具体的锁和同步器来实现他们的公用方法。

 

这个类支持默认的排斥模式和共享模式。当使用排斥模式的时候,尝试从其他线程获取一定会失败。共享模式可能(但是不必要)成功。这个类不会理解这些不同,它只理解机制。当一个共享的模式成功取得授权之后,等待线程必须决定是否能够取得授权。不同模式的等待线程共享同一个FIFO队列。一般情况下,实现的子类只支持其中一个模式。但是两种模式都可以同时工作,例如读写锁。只支持一种模式的不需要定义另外一种模式的方法。

 

这个类定义个内嵌的类,这个类可以用来实现ConditionisHeldExclusively 表示这个类被当前线程占用,release 方法中传入getState 值释放这个对象 acquire 又恢复到之前的那个状态。这个类AbstractQueuedSynchronizer中没有其他方法会创建这样的condition,如果这个限制不能狗满足需求,那就不要用它。ConditionObject 的行为是依赖于同步器的实现的语义的。

 

这个类提供内部队列的观察,操作和监视方法,以及条件对象的相似方法。这些方法如果有需要,可以public出来。

 

这个类的序列化只保存那个原子的状态,所以反序列化时,

猜你喜欢

转载自daojin.iteye.com/blog/2389852