ConditionPriorityBlockingQueue

public class ConditionPriorityBlockingQueue
extends Object

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


一个线程安全类,包含可检索对象的类似 ERROR(/PriorityBlockingQueue) 的操作 符合特定条件的定位条件

迭代也是线程安全的,但不一致。在迭代器处创建队列副本 并且该副本将用作迭代目标。如果队列在 迭代器不会抛出 ERROR(/ConcurrentModificationException),而是会抛出 也不会反映修改后的内容。

摘要

嵌套类

class ConditionPriorityBlockingQueue.AlwaysMatch<T>

ConditionPriorityBlockingQueue.IMatcher 匹配任何对象。 

interface ConditionPriorityBlockingQueue.IMatcher<T>

用于确定元素是否符合某种条件的接口。 

公共构造函数

ConditionPriorityBlockingQueue()

创建 ConditionPriorityBlockingQueue

元素将按 FIFO 顺序确定优先级。

ConditionPriorityBlockingQueue( c)

创建 ConditionPriorityBlockingQueue

公共方法

boolean add(T addedElement)

将指定的元素插入此队列中。

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

将项添加到此队列中,替换符合指定条件的任何现有对象

void clear()

从该队列中移除所有元素。

boolean contains(T object)

确定某个对象当前是否包含在此队列中。

getCopy()

获取队列内容的副本。

iterator()

T poll(long timeout, TimeUnit unit)

检索并移除最小值(根据提供的 ERROR(/Comparator) 元素 T, 队列。

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

检索并移除最小值(根据提供的 ERROR(/Comparator) 元素 T, matcher.matches(T)true 的队列。

T poll(IMatcher<T> matcher)

检索并移除最小值(根据提供的 ERROR(/Comparator) 元素 T, matcher.matches(T)true 的队列。

T poll()

检索并移除此队列的头部。

boolean remove(T object)

从该队列中移除项。

int size()
T take()

检索并移除最小值(根据提供的 ERROR(/Comparator) 元素 T, 队列。

T take(IMatcher<T> matcher)

检索并移除队列中的第一个元素 T,其中 matcher.matches(T)true:如有必要,会等到此类元素可用。

公共构造函数

ConditionPriorityBlockingQueue

public ConditionPriorityBlockingQueue ()

创建 ConditionPriorityBlockingQueue

元素将按 FIFO 顺序确定优先级。

ConditionPriorityBlockingQueue

public ConditionPriorityBlockingQueue ( c)

创建 ConditionPriorityBlockingQueue

参数
c :用于对队列进行优先级排序的 ERROR(/Comparator)

公共方法

添加

public boolean add (T addedElement)

将指定的元素插入此队列中。由于队列是无界限的 永不阻止

参数
addedElement T:要添加的元素

返回
boolean true

抛出
ClassCastException 如果指定的元素无法与 元素进行比较 根据优先级队列的顺序确定当前在优先级队列中
NullPointerException 如果指定的元素为 null

添加唯一

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 如果给定对象包含在队列中,则返回 truefalse> 否则。

获取副本

public  getCopy ()

获取队列内容的副本。

返回

迭代器

public  iterator ()

返回

民意调查

public T poll (long timeout, 
                TimeUnit unit)

检索并移除最小值(根据提供的 ERROR(/Comparator) 元素 T, 队列。

为某个元素屏蔽最多 timeout 次。

参数
timeout long:元素可用前等待的时间

unit TimeUnit:超时 ERROR(/TimeUnit)

返回
T 最小匹配的元素数;如果没有匹配元素,则为 null

民意调查

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

检索并移除最小值(根据提供的 ERROR(/Comparator) 元素 T, matcher.matches(T)true 的队列。

为某个元素屏蔽最多 timeout 次。

参数
timeout long:元素可用前等待的时间

unit TimeUnit:超时 ERROR(/TimeUnit)

matcher IMatcher:用于评估元素的 IMatcher

返回
T 最小匹配的元素数;如果没有匹配元素,则为 null

民意调查

public T poll (IMatcher<T> matcher)

检索并移除最小值(根据提供的 ERROR(/Comparator) 元素 T, matcher.matches(T)true 的队列。

参数
matcher IMatcher:用于评估元素的 IMatcher

返回
T 最小匹配的元素数;如果没有匹配元素,则为 null

民意调查

public T poll ()

检索并移除此队列的头部。

返回
T 此队列的标题,或者 null(如果队列为空)

移除

public boolean remove (T object)

从该队列中移除项。

参数
object T:要移除的对象

返回
boolean 如果从队列中移除给定对象,则为 truefalse> 否则。

size

public int size ()

返回
int 队列中的元素数量

public T take ()

检索并移除最小值(根据提供的 ERROR(/Comparator) 元素 T, 队列。

无限期屏蔽,直到某个元素变得可用。

返回
T 此队列的头部

抛出
InterruptedException 在等待期间中断

public T take (IMatcher<T> matcher)

检索并移除队列中的第一个元素 T,其中 matcher.matches(T)true:如有必要,会等到此类元素可用。

参数
matcher IMatcher:用于评估元素的 IMatcher

返回
T 匹配的元素

抛出
InterruptedException 在等待期间中断