條件優先封鎖佇列

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)

擷取並移除 matcher.matches(T) 位於佇列中的第一個元素 T true,會視需要等待直到這類元素可用。

公用建構函式

條件優先封鎖佇列

public ConditionPriorityBlockingQueue ()

可建立 ConditionPriorityBlockingQueue

元素會依照 FIFO 的順序排列。

條件優先封鎖佇列

public ConditionPriorityBlockingQueue ( c)

可建立 ConditionPriorityBlockingQueue

參數
c :用來為佇列排定優先順序的 ERROR(/Comparator)

公用方法

新增

public boolean add (T addedElement)

將指定元素插入這個佇列。由於佇列不受限制,此方法將 一律不會封鎖

參數
addedElement T:要新增的元素

傳回
boolean true

擲回
ClassCastException 表示指定的元素無法與元素進行比較 目前根據優先佇列的順序
NullPointerException 如果指定的元素為空值

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  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 true (如果指定物件已從佇列中移除)。false> 反之。

size

public int size ()

傳回
int 佇列中的元素數量

public T take ()

擷取並移除最小值 (按照提供的 ERROR(/Comparator) 元素 T 所決定的 佇列。

無限期封鎖,才會有元素提供使用。

傳回
T 這個佇列的標頭

擲回
InterruptedException 在等待期間中斷

public T take (IMatcher<T> matcher)

擷取並移除 matcher.matches(T) 位於佇列中的第一個元素 T true,會視需要等待直到這類元素可用。

參數
matcher IMatcher:用於評估元素的 IMatcher

傳回
T 相符的元素

擲回
InterruptedException 在等待期間中斷