|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.util.AbstractCollection<E>
java.util.AbstractQueue<E>
java.util.concurrent.SynchronousQueue<E>
E - コレクション内に存在する要素の型public class SynchronousQueue<E>
各 put が take を待機し、その逆も実行する必要があるブロックキュー。同期キューは、内部容量を一切持ちません。要素は、取得を試みても存在するのみであるため、同期キューで peek を実行することはできません。別のスレッドが削除を試みていないかぎり、どのメソッドを使用しても要素を追加することはできません。反復するものが存在しないため、反復は実行できません。キューの「先頭」は最初にキューに入れられたスレッドがキューに追加を試みる要素です。キューに入れられたスレッドが存在しない場合、追加される要素は存在せず、先頭は null になります。他の Collection メソッド (たとえば contains) のために、SynchronousQueue は空のコレクションとして動作します。このキューは、null 要素を許可しません。
同期キューは、CSP や Ada で使用されるランデブチャネルに似ています。これらは、情報やイベント、タスクを渡すために、あるスレッドで実行中のオブジェクトを別のスレッドで実行中のオブジェクトと同期させる必要があるハンドオフ設計に大変適しています。
このクラスは、待機中のプロデューサおよびコンシューマスレッドの順序付けを決定するオプションの均等性ポリシーをサポートします。デフォルトでは、この順序付けは保証されていません。ただし、true に設定された均等性ポリシーを使用して構築されたキューでは、スレッドが FIFO の順序でアクセスすることが許可されます。通常は、均等性によりスループットが低下しますが、変動性も低下するため、スループットが極端に少なくなることはありません。
このクラスとその反復子は、Collection および Iterator インタフェースのオプションのメソッドをすべて実装します。
このクラスは、Java Collections Framework のメンバです。
| コンストラクタの概要 | |
|---|---|
SynchronousQueue()
不均等アクセスポリシーを使用して、SynchronousQueue を作成します。 |
|
SynchronousQueue(boolean fair)
指定された均等性ポリシーを使用して、SynchronousQueue を作成します。 |
|
| メソッドの概要 | ||
|---|---|---|
void |
clear()
何も行いません。 |
|
boolean |
contains(Object o)
常に false を返します。 |
|
boolean |
containsAll(Collection<?> c)
指定されたコレクションが空でない場合、false を返します。 |
|
int |
drainTo(Collection<? super E> c)
利用可能なすべての要素をこのキューから削除して、指定されたコレクションに追加します。 |
|
int |
drainTo(Collection<? super E> c,
int maxElements)
指定された数以内の利用可能な要素をこのキューから削除して、指定されたコレクションに追加します。 |
|
boolean |
isEmpty()
常に true を返します。 |
|
Iterator<E> |
iterator()
hasNext が常に false を返す空の反復子を返します。 |
|
boolean |
offer(E o)
別のスレッドが指定された要素の受け取りを待機している場合、このキューにそれを挿入します。 |
|
boolean |
offer(E o,
long timeout,
TimeUnit unit)
指定された要素をこのキューに挿入します。 |
|
E |
peek()
常に null を返します。 |
|
E |
poll()
現在、別のスレッドが要素を利用可能にしている場合、このキューの先頭を取得して削除します。 |
|
E |
poll(long timeout,
TimeUnit unit)
キューの先頭を取得して削除します。 |
|
void |
put(E o)
指定された要素をこのキューに追加します。 |
|
int |
remainingCapacity()
常にゼロを返します。 |
|
boolean |
remove(Object o)
常に false を返します。 |
|
boolean |
removeAll(Collection<?> c)
常に false を返します。 |
|
boolean |
retainAll(Collection<?> c)
常に false を返します。 |
|
int |
size()
常にゼロを返します。 |
|
E |
take()
このキューの先頭を取得して削除します。 |
|
Object[] |
toArray()
長さゼロの配列を返します。 |
|
|
toArray(T[] a)
指定された配列のゼロ番目の要素を null に設定して (配列がゼロでない長さを保持する場合)、それを返します。 |
|
| クラス java.util.AbstractQueue から継承されたメソッド |
|---|
add, addAll, element, remove |
| クラス java.util.AbstractCollection から継承されたメソッド |
|---|
toString |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| インタフェース java.util.concurrent.BlockingQueue から継承されたメソッド |
|---|
add |
| インタフェース java.util.Queue から継承されたメソッド |
|---|
element, remove |
| インタフェース java.util.Collection から継承されたメソッド |
|---|
addAll, equals, hashCode |
| コンストラクタの詳細 |
|---|
public SynchronousQueue()
public SynchronousQueue(boolean fair)
fair - true の場合、スレッドはアクセスの FIFO 順で競合する。そうでない場合、順序は指定されない| メソッドの詳細 |
|---|
public void put(E o)
throws InterruptedException
BlockingQueue<E> 内の puto - 追加する要素
InterruptedException - 待機中に割り込みが発生した場合
NullPointerException - 指定された要素が null である場合
public boolean offer(E o,
long timeout,
TimeUnit unit)
throws InterruptedException
BlockingQueue<E> 内の offero - 追加する要素timeout - 処理を中止するまでの待機時間。単位は unitunit - timeout パラメータの解釈方法を指定する TimeUnit
InterruptedException - 待機中に割り込みが発生した場合
NullPointerException - 指定された要素が null である場合
public E take()
throws InterruptedException
BlockingQueue<E> 内の takeInterruptedException - 待機中に割り込みが発生した場合
public E poll(long timeout,
TimeUnit unit)
throws InterruptedException
BlockingQueue<E> 内の polltimeout - 処理を中止するまでの待機時間。単位は unitunit - timeout パラメータの解釈方法を指定する TimeUnit
InterruptedException - 待機中に割り込みが発生した場合public boolean offer(E o)
BlockingQueue<E> 内の offerQueue<E> 内の offero - 追加する要素
NullPointerException - 指定された要素が null である場合public E poll()
Queue<E> 内の pollpublic boolean isEmpty()
Collection<E> 内の isEmptyAbstractCollection<E> 内の isEmptypublic int size()
Collection<E> 内の sizeAbstractCollection<E> 内の sizepublic int remainingCapacity()
BlockingQueue<E> 内の remainingCapacitypublic void clear()
Collection<E> 内の clearAbstractQueue<E> 内の clearpublic boolean contains(Object o)
Collection<E> 内の containsAbstractCollection<E> 内の containso - 要素
public boolean remove(Object o)
Collection<E> 内の removeAbstractCollection<E> 内の removeo - 削除する要素
public boolean containsAll(Collection<?> c)
Collection<E> 内の containsAllAbstractCollection<E> 内の containsAllc - コレクション
AbstractCollection.contains(Object)public boolean removeAll(Collection<?> c)
Collection<E> 内の removeAllAbstractCollection<E> 内の removeAllc - コレクション
AbstractCollection.remove(Object),
AbstractCollection.contains(Object)public boolean retainAll(Collection<?> c)
Collection<E> 内の retainAllAbstractCollection<E> 内の retainAllc - コレクション
AbstractCollection.remove(Object),
AbstractCollection.contains(Object)public E peek()
Queue<E> 内の peekpublic Iterator<E> iterator()
Iterable<E> 内の iteratorCollection<E> 内の iteratorAbstractCollection<E> 内の iteratorpublic Object[] toArray()
Collection<E> 内の toArrayAbstractCollection<E> 内の toArraypublic <T> T[] toArray(T[] a)
Collection<E> 内の toArrayAbstractCollection<E> 内の toArraya - 配列
public int drainTo(Collection<? super E> c)
BlockingQueue の記述:
BlockingQueue<E> 内の drainToc - 要素の転送先のコレクション
public int drainTo(Collection<? super E> c,
int maxElements)
BlockingQueue の記述:
BlockingQueue<E> 内の drainToc - 要素の転送先のコレクションmaxElements - 転送する要素の最大数
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。