JavaTM Platform
Standard Ed. 6

java.util.concurrent.locks
클래스 ReentrantReadWriteLock.ReadLock

java.lang.Object 
  상위를 확장 java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock
모든 구현된 인터페이스:
Serializable , Lock
포함되어 있는 클래스:
ReentrantReadWriteLock


public static class ReentrantReadWriteLock.ReadLock
extends Object
implements Lock , Serializable

ReentrantReadWriteLock.readLock() 메소드에 의해 반환되는 락입니다.

관련 항목:
직렬화 된 형식

생성자 의 개요
protected ReentrantReadWriteLock.ReadLock (ReentrantReadWriteLock  lock)
          서브 클래스에 의해 사용되는 생성자 입니다.
 
메소드의 개요
 void lock ()
          read 락을 가져옵니다.
 void lockInterruptibly ()
          현재의 thread가 interrupted 가 아닌 경우, read 락을 가져옵니다.
 Condition newCondition ()
          ReadLocks 가 상태를 지원하지 않기 때문에,UnsupportedOperationException 를 throw 합니다.
 String toString ()
          이 락 및 그 상태를 식별하는 캐릭터 라인을 돌려줍니다.
 boolean tryLock ()
          호출시에 다른 thread에 의해 기입 락이 보관 유지되어 있지 않은 경우에게만, read 락을 가져옵니다.
 boolean tryLock (long timeout, TimeUnit  unit)
          지정된 대기 시간내에 다른 thread가 기입해 락을 보관 유지하지 않고, 현재의 thread로인터럽트가 발생하고 있지 않는 경우에, read 락을 가져옵니다.
 void unlock ()
          이 락의 해제을 시도합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

ReentrantReadWriteLock.ReadLock

protected ReentrantReadWriteLock.ReadLock(ReentrantReadWriteLock  lock)
서브 클래스에 의해 사용되는 생성자 입니다.

파라미터:
lock - 외부의 락 객체
예외:
NullPointerException - lock 가 null 의 경우
메소드의 상세

lock

public void lock()
read 락을 가져옵니다.

기입 락이 다른 thread에 의해 보관 유지되어 있지 않은 경우는, read 락을 취득해 즉시 복귀합니다.

기입 락이 다른 thread에 의해 보관 유지되고 있는 경우, 현재의 thread는 thread의 스케줄링에 관해서 무효가 되어, read 락이 취득될 때까지 대기합니다.

정의:
인터페이스 Lock 내의 lock

lockInterruptibly

public void lockInterruptibly()
                       throws InterruptedException 
현재의 thread가 interrupted 가 아닌 경우, read 락을 가져옵니다.

기입 락이 다른 thread에 의해 보관 유지되어 있지 않은 경우는, read 락을 취득해 즉시 복귀합니다.

기입 락이 다른 thread에 의해 보관 유지되고 있는 경우, 현재의 thread는 thread의 스케줄링에 관해서 무효가 되어, 다음의 2 개중 한쪽이 일어날 때까지 대기합니다.

현재의 thread로,

InterruptedException 가 throw 되어 현재의 thread의 인터럽트 상태가 클리어 됩니다.

이 메소드는 명시적인 끼어들어 포인트이기 (위해)때문에, 이 구현에서는, 일반적으로 또는 재입 가능한 락 취득에의 인터럽트에의 응답에 높은 우선도가 주어집니다.

정의:
인터페이스 Lock 내의 lockInterruptibly
예외:
InterruptedException - 현재의 thread로 인터럽트가 발생했을 경우

tryLock

public boolean tryLock()
호출시에 다른 thread에 의해 기입 락이 보관 유지되어 있지 않은 경우에게만, read 락을 가져옵니다.

다른 thread가 기입해 락을 보관 유지하고 있지 않는 경우에 읽어들여 락을 취득해, 값 true 로 즉시 복귀합니다. 이 락이 공평 순서부 정책를 사용하도록(듯이) 설정되어 있는 경우에서도, read 락이 사용 가능하면, 다른 thread가 현재 read 락을 대기하고 있을지 어떨지에 관계없이,tryLock() 의 호출로 곧바로 읽어들여 락이 취득됩니다. 이 「인터럽트」(barging) 동작에 의해 공평성이 없어진다고는 말할 수 있어 이것은 특정의 상황하로 유용합니다. 이 락의 공평성 설정을 존중하는 경우는, 거의 등가인 tryLock(0, TimeUnit.SECONDS) 를 사용합니다 (이것도 인터럽트를 검출한다).

기입 락이 다른 thread에 의해 보관 유지되고 있는 경우, 이 메소드는, 값 false 로 즉시 복귀합니다.

정의:
인터페이스 Lock 내의 tryLock
반환값:
read 락이 취득되었을 경우는 true

tryLock

public boolean tryLock(long timeout,
                       TimeUnit  unit)
                throws InterruptedException 
지정된 대기 시간내에 다른 thread가 기입해 락을 보관 유지하지 않고, 현재의 thread로인터럽트가 발생하고 있지 않는 경우에, read 락을 가져옵니다.

다른 thread가 기입해 락을 보관 유지하고 있지 않는 경우에 읽어들여 락을 취득해, 값 true 로 즉시 복귀합니다. 이 락이 공평 순서부 정책를 사용하도록(듯이) 설정되어 있어도, 다른 thread가 락을 대기하고 있는 경우는, 사용 가능한 락은 취득되지 않습니다. 이것은,tryLock() 메소드와는 대조적입니다. 공평 락에 대한 화물 운반선을 허가하지 않는, 시간 설정된 tryLock 를 사용하는 경우는, 시간 설정과 비시간 설정의 양형식을 조합해 사용합니다.

if (lock.tryLock() || lock.tryLock(timeout, unit) ) { ... }
 

기입 락이 다른 thread에 의해 보관 유지되고 있는 경우, 현재의 thread는 thread의 스케줄링에 관해서 무효가 되어, 다음의 3 개중 한쪽이 일어날 때까지 대기합니다.

read 락이 취득되면(자),true 가 돌려주어집니다.

현재의 thread로,

InterruptedException 가 throw 되어 현재의 thread의 인터럽트 상태가 클리어 됩니다.

지정된 대기 시간이 경과하면(자), 값 false 가 돌려주어집니다. 시간이 제로 또는 그것보다 작은 경우, 메소드는 대기하지 않습니다.

이 메소드는 명시적인 끼어들어 포인트이기 (위해)때문에, 이 구현에서는, 일반적으로 또는 재입 가능한 락 취득, 및 대기 시간 경과 리포트에의 인터럽트에 대한 응답에 높은 우선도가 주어집니다.

정의:
인터페이스 Lock 내의 tryLock
파라미터:
timeout - read 락을 대기하는 시간
unit - timeout 인수의 시간 단위
반환값:
read 락이 취득되었을 경우는 true
예외:
InterruptedException - 현재의 thread로 인터럽트가 발생했을 경우
NullPointerException - 시간 단위가 null 의 경우

unlock

public void unlock()
이 락의 해제을 시도합니다.

리더의 수가 제로가 되었을 경우, 기입 락 시행으로부터 락이 이용 가능하게 됩니다.

정의:
인터페이스 Lock 내의 unlock

newCondition

public Condition  newCondition()
ReadLocks 가 상태를 지원하지 않기 때문에,UnsupportedOperationException 를 throw 합니다.

정의:
인터페이스 Lock 내의 newCondition
반환값:
Lock 인스턴스용의 신규 Condition
예외:
UnsupportedOperationException - always

toString

public String  toString()
이 락 및 그 상태를 식별하는 캐릭터 라인을 돌려줍니다. 상태는 괄호로 둘러싸여 보관 유지되는 read 락의 수에 계속되는 캐릭터 라인 "Read locks =" 가 포함됩니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 락 및 그 상태를 식별하는 캐릭터 라인

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.