ConditionPriorityBlockingQueue
public
class
ConditionPriorityBlockingQueue
extends Object
implements
Iterable<T>
| java.lang.Object | |
| ↳ | com.android.tradefed.util.ConditionPriorityBlockingQueue<T> |
특정 조건과 일치하는 객체를 가져올 수 있는 PriorityBlockingQueue와 유사한 작업이 있는 스레드 안전 클래스입니다.
반복도 스레드로부터 안전하지만 일관되지는 않습니다. 이터레이터 생성 시간에 큐의 사본이 만들어지고 이 사본이 반복 타겟으로 사용됩니다. 반복 중에 대기열이 수정되면 ConcurrentModificationException가 발생하지 않지만 반복자도 수정된 콘텐츠를 반영하지 않습니다.
요약
중첩된 클래스 | |
|---|---|
class |
ConditionPriorityBlockingQueue.AlwaysMatch<T>
모든 객체와 일치하는 |
interface |
ConditionPriorityBlockingQueue.IMatcher<T>
요소가 특정 조건을 충족하는지 확인하는 인터페이스입니다. |
공개 생성자 | |
|---|---|
ConditionPriorityBlockingQueue()
요소는 FIFO 순서로 우선순위가 지정됩니다. |
|
ConditionPriorityBlockingQueue(Comparator<T> c)
|
|
공개 메서드 | |
|---|---|
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)이 |
T
|
poll(long timeout, TimeUnit unit, IMatcher<T> matcher)
matcher.matches(T)이 |
T
|
poll(long timeout, TimeUnit unit)
제공된 |
T
|
poll()
이 큐의 헤드를 가져오고 삭제합니다. |
boolean
|
remove(T object)
이 대기열에서 항목을 삭제합니다. |
int
|
size()
|
T
|
take()
제공된 |
T
|
take(IMatcher<T> matcher)
matcher.matches(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 |
대기 중에 중단된 경우 |