條件優先封鎖佇列
public
class
ConditionPriorityBlockingQueue
extends Object
java.lang.Object | |
↳ | com.android.tradefed.util.ConditionPriorityBlockingQueue<T> |
執行緒安全類別,具有類似 ERROR(/PriorityBlockingQueue)
的作業,可擷取物件
與特定條件相符的部分
疊代也是執行緒安全的,但不一致。佇列副本會由疊代器建立
這個副本將做為疊代目標使用如果佇列在
疊代,不會擲回 ERROR(/ConcurrentModificationException)
,而疊代器
也不會反映修改的內容
摘要
巢狀類別 | |
---|---|
class |
ConditionPriorityBlockingQueue.AlwaysMatch<T>
|
interface |
ConditionPriorityBlockingQueue.IMatcher<T>
用來判斷元素是否符合某種條件的介面。 |
公用建構函式 | |
---|---|
ConditionPriorityBlockingQueue()
可建立 元素會依照 FIFO 的順序排列。 |
|
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)
擷取並移除最小值 (按照提供的 |
T
|
poll(long timeout, TimeUnit unit, IMatcher<T> matcher)
擷取並移除最小值 (按照提供的 |
T
|
poll(IMatcher<T> matcher)
擷取並移除最小值 (按照提供的 |
T
|
poll()
擷取並移除這個佇列的標頭。 |
boolean
|
remove(T object)
從這個佇列中移除項目。 |
int
|
size()
|
T
|
take()
擷取並移除最小值 (按照提供的 |
T
|
take(IMatcher<T> matcher)
擷取並移除 matcher.matches(T) 位於佇列中的第一個元素 T
|
公用建構函式
條件優先封鎖佇列
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
publicgetCopy ()
取得佇列內容的副本。
傳回 | |
---|---|
|
疊代器
publiciterator ()
傳回 | |
---|---|
|
意見調查
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 |
在等待期間中斷 |