|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.AbstractCollection<E> java.util.AbstractQueue<E> java.util.concurrent.SynchronousQueue<E>
E
- コレクション内に存在する要素の型public class SynchronousQueue<E>
各挿入オペレーションが別のスレッドによる対応する削除オペレーションを待機する必要がある (およびその逆の) ブロッキングキュー です。同期キューには、内部容量がまったくありません。要素が存在するのは削除しようとするときだけなので、同期キューで peek を実行することはできません。別のスレッドが削除を試みていないかぎり、どのメソッドを使用しても要素を挿入することはできません。反復するものが存在しないため、反復は実行できません。キューの「先頭」は、挿入処理スレッドがキューに追加しようとする、最初にキューに入れられた要素です。そのようなキューに入れられたスレッドが存在しない場合は、削除できる要素はなく、poll() は 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 e)
別のスレッドが要素を受け取るのを待機している場合、その要素をこのキューに追加します。 |
|
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>
内の put
o
- 追加する要素
InterruptedException
- 待機中に割り込みが発生した場合
NullPointerException
- 指定された要素が null である場合public boolean offer(E o, long timeout, TimeUnit unit) throws InterruptedException
BlockingQueue<E>
内の offer
o
- 追加する要素timeout
- 処理を中止するまでの待機時間。単位は unitunit
- timeout パラメータの解釈方法を決定する TimeUnit
InterruptedException
- 待機中に割り込みが発生した場合
NullPointerException
- 指定された要素が null である場合public boolean offer(E e)
BlockingQueue<E>
内の offer
Queue<E>
内の offer
e
- 追加する要素
NullPointerException
- 指定された要素が null である場合public E take() throws InterruptedException
BlockingQueue<E>
内の take
InterruptedException
- 待機中に割り込みが発生した場合public E poll(long timeout, TimeUnit unit) throws InterruptedException
BlockingQueue<E>
内の poll
timeout
- 処理を中止するまでの待機時間。単位は unitunit
- timeout パラメータの解釈方法を決定する TimeUnit
InterruptedException
- 待機中に割り込みが発生した場合public E poll()
Queue<E>
内の poll
public boolean isEmpty()
Collection<E>
内の isEmpty
AbstractCollection<E>
内の isEmpty
public int size()
Collection<E>
内の size
AbstractCollection<E>
内の size
public int remainingCapacity()
BlockingQueue<E>
内の remainingCapacity
public void clear()
Collection<E>
内の clear
AbstractQueue<E>
内の clear
public boolean contains(Object o)
Collection<E>
内の contains
BlockingQueue<E>
内の contains
AbstractCollection<E>
内の contains
o
- 要素
public boolean remove(Object o)
Collection<E>
内の remove
BlockingQueue<E>
内の remove
AbstractCollection<E>
内の remove
o
- 削除する要素
public boolean containsAll(Collection<?> c)
Collection<E>
内の containsAll
AbstractCollection<E>
内の containsAll
c
- コレクション
AbstractCollection.contains(Object)
public boolean removeAll(Collection<?> c)
Collection<E>
内の removeAll
AbstractCollection<E>
内の removeAll
c
- コレクション
AbstractCollection.remove(Object)
,
AbstractCollection.contains(Object)
public boolean retainAll(Collection<?> c)
Collection<E>
内の retainAll
AbstractCollection<E>
内の retainAll
c
- コレクション
AbstractCollection.remove(Object)
,
AbstractCollection.contains(Object)
public E peek()
Queue<E>
内の peek
public Iterator<E> iterator()
Iterable<E>
内の iterator
Collection<E>
内の iterator
AbstractCollection<E>
内の iterator
public Object[] toArray()
Collection<E>
内の toArray
AbstractCollection<E>
内の toArray
public <T> T[] toArray(T[] a)
Collection<E>
内の toArray
AbstractCollection<E>
内の toArray
a
- メッセージデータの長さ
NullPointerException
- 指定された配列が null である場合public int drainTo(Collection<? super E> c)
BlockingQueue
の記述:
BlockingQueue<E>
内の drainTo
c
- 要素の転送先のコレクション
UnsupportedOperationException
- 指定されたコレクションで追加の要素がサポートされていない場合
ClassCastException
- このキューの要素のクラスが原因で、その要素を指定されたコレクションに追加できない場合
NullPointerException
- 指定されたコレクションが null である場合
IllegalArgumentException
- 指定されたコレクションがこのキューである場合、またはこのキューの要素のあるプロパティーが原因で指定されたコレクションに追加できない場合public int drainTo(Collection<? super E> c, int maxElements)
BlockingQueue
の記述:
BlockingQueue<E>
内の drainTo
c
- 要素の転送先のコレクションmaxElements
- 転送する要素の最大数
UnsupportedOperationException
- 指定されたコレクションで追加の要素がサポートされていない場合
ClassCastException
- このキューの要素のクラスが原因で、その要素を指定されたコレクションに追加できない場合
NullPointerException
- 指定されたコレクションが null である場合
IllegalArgumentException
- 指定されたコレクションがこのキューである場合、またはこのキューの要素のあるプロパティーが原因で指定されたコレクションに追加できない場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。