JavaTM Platform
Standard Ed. 6

java.util.concurrent.locks
클래스 AbstractQueuedLongSynchronizer.ConditionObject

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


public class AbstractQueuedLongSynchronizer.ConditionObject
extends Object
implements Condition , Serializable

Lock 구현의 기반으로서 기능하는 AbstractQueuedLongSynchronizer 의 Condition 구현입니다.

이 클래스의 메소드의 문서에는, Lock 및 Condition 사용자로부터 본 동작 스펙은 아니고, 내부 기구가 기재되어 있습니다. 일반적으로, 이 클래스의 export 된 버젼에는, 관련하는 AbstractQueuedLongSynchronizer 상태 시멘틱스를 기술한 문서를 첨부할 필요가 있습니다.

이 클래스는 Serializable 입니다만, 모든 필드는 일시 필드이기 (위해)때문에, 직렬화 복원된 상태에서는 대기자는 존재하지 않습니다.

도입된 버젼:
1.6
관련 항목:
직렬화 된 형식

생성자 의 개요
AbstractQueuedLongSynchronizer.ConditionObject ()
          새로운 ConditionObject 의 인스턴스를 생성합니다.
 
메소드의 개요
 void await ()
          끼어들어 가능한 상태 대기를 구현합니다.
 boolean await (long time, TimeUnit  unit)
          시간의 지정된 상태 대기를 구현합니다.
 long awaitNanos (long nanosTimeout)
          시간의 지정된 상태 대기를 구현합니다.
 void awaitUninterruptibly ()
          끼어들어 불가능한 상태 대기를 구현합니다.
 boolean awaitUntil (Date  deadline)
          절대 시간의 지정된 상태 대기를 구현합니다.
protected  Collection <Thread > getWaitingThreads ()
          이 Condition 로 대기하고 있을 가능성이 있는 thread를 포함한 컬렉션을 돌려줍니다.
protected  int getWaitQueueLength ()
          이 상태로 대기중의 thread의 추정수를 돌려줍니다.
protected  boolean hasWaiters ()
          이 상태로 대기중의 thread가 존재할지 어떨지를 조회합니다.
 void signal ()
          가장 길게 대기하고 있는 thread가 존재하는 경우, 그것을 이 상태의 대기 큐로부터 소유하는 락의 대기 큐로 이동합니다.
 void signalAll ()
          모든 thread를, 이 상태의 대기 큐로부터 소유하는 락의 대기 큐로 이동합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

AbstractQueuedLongSynchronizer.ConditionObject

public AbstractQueuedLongSynchronizer.ConditionObject()
새로운 ConditionObject 의 인스턴스를 생성합니다.

메소드의 상세

signal

public final void signal()
무엇보다 길게 대기하고 있는 thread가 존재하는 경우, 그것을 이 상태의 대기 큐로부터 소유하는 락의 대기 큐로 이동합니다.

정의:
인터페이스 Condition 내의 signal
예외:
IllegalMonitorStateException - AbstractQueuedLongSynchronizer.isHeldExclusively()false 를 돌려주는 경우

signalAll

public final void signalAll()
모든 thread를, 이 상태의 대기 큐로부터 소유하는 락의 대기 큐로 이동합니다.

정의:
인터페이스 Condition 내의 signalAll
예외:
IllegalMonitorStateException - AbstractQueuedLongSynchronizer.isHeldExclusively()false 를 돌려주는 경우

awaitUninterruptibly

public final void awaitUninterruptibly()
끼어들어 불가능한 상태 대기를 구현합니다.
  1. AbstractQueuedLongSynchronizer.getState() 에 의해 반환된 락 상태를 보존한다.
  2. 보존 끝난 상태를 인수로서 AbstractQueuedLongSynchronizer.release(long) 를 호출한다. 실패했을 경우는, IllegalMonitorStateException 를 throw 한다.
  3. 신호가 보내질 때까지 블록 한다.
  4. 보존 끝난 상태를 인수로서 특수한 버젼의 AbstractQueuedLongSynchronizer.acquire(long) 를 호출하는 것으로, 취득을 재실행한다.

정의:
인터페이스 Condition 내의 awaitUninterruptibly

await

public final void await()
                 throws InterruptedException 
끼어들어 가능한 상태 대기를 구현합니다.
  1. 현재의 thread로 인터럽트를 했을 경우는, InterruptedException 를 throw 한다.
  2. AbstractQueuedLongSynchronizer.getState() 에 의해 반환된 락 상태를 보존한다.
  3. 보존 끝난 상태를 인수로서 AbstractQueuedLongSynchronizer.release(long) 를 호출한다. 실패했을 경우는, IllegalMonitorStateException 를 throw 한다.
  4. 신호가 송신되는지, 인터럽트가 발생할 때까지 블록 한다.
  5. 보존 끝난 상태를 인수로서 특수한 버젼의 AbstractQueuedLongSynchronizer.acquire(long) 를 호출하는 것으로, 취득을 재실행한다.
  6. 스텝 4 의 블록중에 인터럽트가 발생했을 경우는, 예외를 throw 한다.

정의:
인터페이스 Condition 내의 await
예외:
InterruptedException - 현재의 thread로 인터럽트가 발생하는 ( 및 thread 중단의 인터럽트가 지원된다) 경우

awaitNanos

public final long awaitNanos(long nanosTimeout)
                      throws InterruptedException 
시간의 지정된 상태 대기를 구현합니다.
  1. 현재의 thread로 인터럽트를 했을 경우는, InterruptedException 를 throw 한다.
  2. AbstractQueuedLongSynchronizer.getState() 에 의해 반환된 락 상태를 보존한다.
  3. 보존 끝난 상태를 인수로서 AbstractQueuedLongSynchronizer.release(long) 를 호출한다. 실패했을 경우는, IllegalMonitorStateException 를 throw 한다.
  4. 신호가 송신되는지, 인터럽트가 발생하는지, 타임 아웃 할 때까지 블록 한다.
  5. 보존 끝난 상태를 인수로서 특수한 버젼의 AbstractQueuedLongSynchronizer.acquire(long) 를 호출하는 것으로, 취득을 재실행한다.
  6. 스텝 4 의 블록중에 인터럽트가 발생했을 경우는, InterruptedException 를 throw 한다.

정의:
인터페이스 Condition 내의 awaitNanos
파라미터:
nanosTimeout - 나노초단위의 대기 시간
반환값:
이 메소드로부터 돌아올 때까지 대기하는 시간을 nanosTimeout 값으로부터 깎은 추정수. 정의 값은, 희망하는 시간만 대기할 수 있도록(듯이), 이 메소드의 이후의 호출에 대한 인수로서 사용된다. 제로 이하의 값은, 시간이 남지 않은 것을 나타낸다
예외:
InterruptedException - 현재의 thread로 인터럽트가 발생하는 ( 및 thread 중단의 인터럽트가 지원된다) 경우

awaitUntil

public final boolean awaitUntil(Date  deadline)
                         throws InterruptedException 
절대 시간의 지정된 상태 대기를 구현합니다.
  1. 현재의 thread로 인터럽트를 했을 경우는, InterruptedException 를 throw 한다.
  2. AbstractQueuedLongSynchronizer.getState() 에 의해 반환된 락 상태를 보존한다.
  3. 보존 끝난 상태를 인수로서 AbstractQueuedLongSynchronizer.release(long) 를 호출한다. 실패했을 경우는, IllegalMonitorStateException 를 throw 한다.
  4. 신호가 송신되는지, 인터럽트가 발생하는지, 타임 아웃 할 때까지 블록 한다.
  5. 보존 끝난 상태를 인수로서 특수한 버젼의 AbstractQueuedLongSynchronizer.acquire(long) 를 호출하는 것으로, 취득을 재실행한다.
  6. 스텝 4 의 블록중에 인터럽트가 발생했을 경우는, InterruptedException 를 throw 한다.
  7. 스텝 4 의 블록중에 타임 아웃 했을 경우는 false 를 돌려주어, 그렇지 않은 경우는 true 를 돌려준다.

정의:
인터페이스 Condition 내의 awaitUntil
파라미터:
deadline - 대기하는 절대 시간
반환값:
복귀시에 기한이 경과하고 있는 경우는 false, 그렇지 않은 경우는 true
예외:
InterruptedException - 현재의 thread로 인터럽트가 발생하는 ( 및 thread 중단의 인터럽트가 지원된다) 경우

await

public final boolean await(long time,
                           TimeUnit  unit)
                    throws InterruptedException 
시간의 지정된 상태 대기를 구현합니다.
  1. 현재의 thread로 인터럽트를 했을 경우는, InterruptedException 를 throw 한다.
  2. AbstractQueuedLongSynchronizer.getState() 에 의해 반환된 락 상태를 보존한다.
  3. 보존 끝난 상태를 인수로서 AbstractQueuedLongSynchronizer.release(long) 를 호출한다. 실패했을 경우는, IllegalMonitorStateException 를 throw 한다.
  4. 신호가 송신되는지, 인터럽트가 발생하는지, 타임 아웃 할 때까지 블록 한다.
  5. 보존 끝난 상태를 인수로서 특수한 버젼의 AbstractQueuedLongSynchronizer.acquire(long) 를 호출하는 것으로, 취득을 재실행한다.
  6. 스텝 4 의 블록중에 인터럽트가 발생했을 경우는, InterruptedException 를 throw 한다.
  7. 스텝 4 의 블록중에 타임 아웃 했을 경우는 false 를 돌려주어, 그렇지 않은 경우는 true 를 돌려준다.

정의:
인터페이스 Condition 내의 await
파라미터:
time - 대기하는 최장 시간
unit - time 인수의 시간 단위
반환값:
메소드로부터의 복귀전에 대기 시간이 경과했던 것이 검출되었을 경우는 false, 그렇지 않은 경우는 true
예외:
InterruptedException - 현재의 thread로 인터럽트가 발생하는 ( 및 thread 중단의 인터럽트가 지원된다) 경우

hasWaiters

protected final boolean hasWaiters()
이 상태로 대기중의 thread가 존재할지 어떨지를 조회합니다. AbstractQueuedLongSynchronizer.hasWaiters(java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject) 를 구현합니다.

반환값:
대기중의 thread가 존재하는 경우는 true
예외:
IllegalMonitorStateException - AbstractQueuedLongSynchronizer.isHeldExclusively()false 를 돌려주는 경우

getWaitQueueLength

protected final int getWaitQueueLength()
이 상태로 대기중의 thread의 추정수를 돌려줍니다. AbstractQueuedLongSynchronizer.getWaitQueueLength(java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject) 를 구현합니다.

반환값:
대기중의 thread의 추정수
예외:
IllegalMonitorStateException - AbstractQueuedLongSynchronizer.isHeldExclusively()false 를 돌려주는 경우

getWaitingThreads

protected final Collection <Thread > getWaitingThreads()
이 Condition 로 대기하고 있을 가능성이 있는 thread를 포함한 컬렉션을 돌려줍니다. AbstractQueuedLongSynchronizer.getWaitingThreads(java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject) 를 구현합니다.

반환값:
thread의 컬렉션
예외:
IllegalMonitorStateException - AbstractQueuedLongSynchronizer.isHeldExclusively()false 를 돌려주는 경우

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 도 참조해 주세요.