| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.util.concurrent.locks.ReentrantReadWriteLock.ReadLock
public static class ReentrantReadWriteLock.ReadLock
      ReentrantReadWriteLock.readLock() 方法返回的锁。 
| 构造方法摘要 | |
|---|---|
| protected  | ReentrantReadWriteLock.ReadLock(ReentrantReadWriteLock lock)子类使用的构造方法 | 
| 方法摘要 | |
|---|---|
|  void | lock()获取读取锁。 | 
|  void | lockInterruptibly()获取读取锁,除非当前线程被中断。 | 
|  Condition | newCondition()因为 ReadLocks不支持条件,所以将抛出UnsupportedOperationException。 | 
|  String | toString()返回标识此锁及其锁状态的字符串。 | 
|  boolean | tryLock()仅当写入锁在调用期间未被另一个线程保持时获取读取锁。 | 
|  boolean | tryLock(long timeout, TimeUnit unit)如果另一个线程在给定的等待时间内没有保持写入锁,并且当前线程未被中断,则获取读取锁。 | 
|  void | unlock()试图释放此锁。 | 
| 从类 java.lang.Object 继承的方法 | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
| 构造方法详细信息 | 
|---|
protected ReentrantReadWriteLock.ReadLock(ReentrantReadWriteLock lock)
lock - 外部锁对象 
     NullPointerException - 如果 lock 为 null
     | 方法详细信息 | 
|---|
public void lock()
如果另一个线程没有保持写入锁,则获取读取锁并立即返回。
如果另一个线程保持该写入锁,出于线程调度目的,将禁用当前线程,并且在获取读取锁之前,该线程将一直处于休眠状态。
Lock 中的 
      lock
     
public void lockInterruptibly()
                       throws InterruptedException 
  如果另一个线程没有保持写入锁,则获取读取锁并立即返回。
如果另一个线程保持了该写入锁,出于线程调度目的,将禁用当前线程,并且在发生以下两种情况之一以前,该线程将一直处于休眠状态:
如果当前线程:
InterruptedException,并且清除当前线程的已中断状态。 
    在此实现中,因为此方法是一个显式中断点,所以要优先考虑响应中断,而不是响应锁的普通获取或重入获取。
Lock 中的 
      lockInterruptibly
     InterruptedException - 如果当前线程是已中断的。
     public boolean tryLock()
如果另一个线程没有保持写入锁,则获取读取锁并立即返回 true 值。即使已将此锁设置为使用公平排序策略,但是调用 tryLock() 仍将 立即获取读取锁(如果有可用的),不管其他线程当前是否正在等待该读取锁。在某些情况下,此“闯入”行为可能很有用,即使它会打破公平性也如此。如果希望遵守此锁的公平设置,则使用 tryLock(0, TimeUnit.SECONDS) ,它几乎是等效的(它也检测中断)。 
如果写入锁被另一个线程保持,则此方法将立即返回 false 值。 
Lock 中的 
      tryLock
     true
     
public boolean tryLock(long timeout,
                       TimeUnit unit)
                throws InterruptedException 
  如果另一个线程没有保持写入锁,则获取读取锁并立即返回 true 值。如果已经设置此锁使用公平的排序策略,并且其他线程都在等待该锁,则不会 获取一个可用的锁。这与 tryLock() 方法相反。如果想使用一个允许闯入公平锁的定时 tryLock,那么可以将定时形式和不定时形式组合在一起: 
if (lock.tryLock() || lock.tryLock(timeout, unit) ) { ... }
  
    如果写入锁被另一个线程保持,则出于线程调度目的,禁用当前线程,并且在发生以下三种情况之一以前,该线程将一直处于休眠状态:
如果获得了读取锁,则返回 true 值。 
如果当前线程:
InterruptedException,并且清除当前线程的已中断状态。 
    如果超出了指定的等待时间,则返回值为 false。如果该时间小于等于 0,则此方法根本不会等待。 
在此实现中,因为此方法是一个显式中断点,所以要优先考虑响应中断,而不是响应锁的普通获取或重入获取,或者报告所用的等待时间。
Lock 中的 
      tryLock
     timeou - 等待读取锁的时间
     unit - timeout 参数的时间单位 
     true。 
     InterruptedException - 如果当前线程被中断 
     NullPointerException - 如果时间单位为 null
     public void unlock()
如果读取者的数量目前为 0,则该锁可用于写入锁尝试。
Lock 中的 
      unlock
     public Condition newCondition()
ReadLocks 不支持条件,所以将抛出 
    UnsupportedOperationException。 
    
Lock 中的 
      newCondition
     Lock 实例的新 
      Condition 实例 
     UnsupportedOperationException - 总是如此
     public String toString()
"Read locks =",后跟读取锁的数量。 
    
Object 中的 
      toString
     | 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。