ConditionPriorityBlockingQueue

public class ConditionPriorityBlockingQueue
extends Object implements Iterable<T>

java.lang.Object
   ↳ com.android.tradefed.util.ConditionPriorityBlockingQueue<T>


특정 조건과 일치하는 객체를 가져올 수 있는 PriorityBlockingQueue와 유사한 작업이 있는 스레드 안전 클래스입니다.

반복도 스레드로부터 안전하지만 일관되지는 않습니다. 이터레이터 생성 시간에 큐의 사본이 만들어지고 이 사본이 반복 타겟으로 사용됩니다. 반복 중에 대기열이 수정되면 ConcurrentModificationException가 발생하지 않지만 반복자도 수정된 콘텐츠를 반영하지 않습니다.

요약

중첩된 클래스

class ConditionPriorityBlockingQueue.AlwaysMatch<T>

모든 객체와 일치하는 ConditionPriorityBlockingQueue.IMatcher 

interface ConditionPriorityBlockingQueue.IMatcher<T>

요소가 특정 조건을 충족하는지 확인하는 인터페이스입니다. 

공개 생성자

ConditionPriorityBlockingQueue()

ConditionPriorityBlockingQueue를 만듭니다.

요소는 FIFO 순서로 우선순위가 지정됩니다.

ConditionPriorityBlockingQueue(Comparator<T> c)

ConditionPriorityBlockingQueue를 만듭니다.

공개 메서드

boolean add(T addedElement)

지정된 요소를 이 대기열에 삽입합니다.

T addUnique(IMatcher<T> matcher, T object)

이 대기열에 항목을 추가하여 지정된 조건과 일치하는 기존 객체를 대체합니다.

void clear()

이 대기열에서 모든 요소를 삭제합니다.

boolean contains(T object)

객체가 현재 이 대기열에 포함되어 있는지 확인합니다.

List<T> getCopy()

대기열 콘텐츠의 사본을 가져옵니다.

Iterator<T> iterator()

T poll(IMatcher<T> matcher)

matcher.matches(T)true인 큐에서 제공된 Comparator 요소 T에 따라 최소값을 검색하고 삭제합니다.

T poll(long timeout, TimeUnit unit, IMatcher<T> matcher)

matcher.matches(T)true인 큐에서 제공된 Comparator 요소 T에 따라 최소값을 검색하고 삭제합니다.

T poll(long timeout, TimeUnit unit)

제공된 Comparator 요소 T에 의해 판단된 최소값을 큐에서 가져와 삭제합니다.

T poll()

이 큐의 헤드를 가져오고 삭제합니다.

boolean remove(T object)

이 대기열에서 항목을 삭제합니다.

int size()
T take()

제공된 Comparator 요소 T에 의해 판단된 최소값을 큐에서 가져와 삭제합니다.

T take(IMatcher<T> matcher)

matcher.matches(T)true인 큐에서 첫 번째 요소 T를 가져오고 삭제합니다. 필요한 경우 이러한 요소가 제공될 때까지 대기합니다.

공개 생성자

ConditionPriorityBlockingQueue

public ConditionPriorityBlockingQueue ()

ConditionPriorityBlockingQueue를 만듭니다.

요소는 FIFO 순서로 우선순위가 지정됩니다.

ConditionPriorityBlockingQueue

public ConditionPriorityBlockingQueue (Comparator<T> c)

ConditionPriorityBlockingQueue를 만듭니다.

매개변수
c Comparator: 대기열의 우선순위를 지정하는 데 사용되는 Comparator입니다.

공개 메서드

추가

public boolean add (T addedElement)

지정된 요소를 이 대기열에 삽입합니다. 대기열이 무한하므로 이 메서드는 차단되지 않습니다.

매개변수
addedElement T: 추가할 요소

반환
boolean true

생성 값
ClassCastException 지정된 요소를 우선순위 대기열의 순서에 따라 현재 우선순위 대기열에 있는 요소와 비교할 수 없는 경우
NullPointerException 지정된 요소가 null인 경우

addUnique

public T addUnique (IMatcher<T> matcher, 
                T object)

이 대기열에 항목을 추가하여 지정된 조건과 일치하는 기존 객체를 대체합니다.

매개변수
matcher IMatcher: 기존 객체를 평가하는 매처

object T: 추가할 객체

반환
T 바뀐 객체 또는 객체가 없는 경우 null

지우기

public void clear ()

이 대기열에서 모든 요소를 삭제합니다.

포함

public boolean contains (T object)

객체가 현재 이 대기열에 포함되어 있는지 확인합니다.

매개변수
object T: 찾을 객체

반환
boolean 지정된 객체가 대기열에 포함된 경우 true 그 외의 경우 false>

getCopy

public List<T> getCopy ()

대기열 콘텐츠의 사본을 가져옵니다.

반환
List<T>

iterator

public Iterator<T> iterator ()

반환
Iterator<T>

public T poll (IMatcher<T> matcher)

matcher.matches(T)true인 큐에서 제공된 Comparator 요소 T에 따라 최소값을 검색하고 삭제합니다.

매개변수
matcher IMatcher: 요소를 평가하는 데 사용할 IMatcher

반환
T 일치하는 요소가 없는 경우 최소 일치 요소 또는 null

public T poll (long timeout, 
                TimeUnit unit, 
                IMatcher<T> matcher)

matcher.matches(T)true인 큐에서 제공된 Comparator 요소 T에 따라 최소값을 검색하고 삭제합니다.

요소를 사용할 수 있게 될 때까지 최대 timeout 시간을 차단합니다.

매개변수
timeout long: 요소가 사용 가능해질 때까지 대기하는 시간

unit TimeUnit: 제한 시간의 TimeUnit

matcher IMatcher: 요소를 평가하는 데 사용할 IMatcher

반환
T 일치하는 요소가 없는 경우 최소 일치 요소 또는 null

생성 값
InterruptedException

public T poll (long timeout, 
                TimeUnit unit)

제공된 Comparator 요소 T에 의해 판단된 최소값을 큐에서 가져와 삭제합니다.

요소를 사용할 수 있게 될 때까지 최대 timeout 시간 동안 차단합니다.

매개변수
timeout long: 요소가 사용 가능해질 때까지 대기하는 시간

unit TimeUnit: 제한 시간의 TimeUnit

반환
T 일치하는 요소가 없는 경우 최소 일치 요소 또는 null

생성 값
InterruptedException

public T poll ()

이 큐의 헤드를 가져오고 삭제합니다.

반환
T 이 대기열의 헤드 또는 대기열이 비어 있으면 null

삭제

public boolean remove (T object)

이 대기열에서 항목을 삭제합니다.

매개변수
object T: 삭제할 객체

반환
boolean true: 지정된 객체가 대기열에서 삭제된 경우 그 외의 경우 false>

크기

public int size ()

반환
int 대기열의 요소 수

take

public T take ()

제공된 Comparator 요소 T에 의해 판단된 최소값을 큐에서 가져와 삭제합니다.

요소를 사용할 수 있게 될 때까지 무기한으로 차단합니다.

반환
T 이 큐의 헤드

생성 값
InterruptedException 대기 중에 중단된 경우

take

public T take (IMatcher<T> matcher)

matcher.matches(T)true인 큐에서 첫 번째 요소 T를 가져오고 삭제합니다. 필요한 경우 이러한 요소가 제공될 때까지 대기합니다.

매개변수
matcher IMatcher: 요소를 평가하는 데 사용할 IMatcher

반환
T 일치하는 요소

생성 값
InterruptedException 대기 중에 중단된 경우