|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
参照先:
説明
インタフェースの概要 | |
---|---|
BlockingQueue<E> | 要素の取得時にキューが空でなくなるまで待機したり、要素の格納時にキュー内の空間が利用可能になるまで待機する操作を追加サポートする Queue 。 |
Callable<V> | 結果を返すタスク。 |
CompletionService<V> | 新しい非同期タスクの生成を、完了済みタスクの結果の消費から分離するサービス。 |
ConcurrentMap<K,V> | 追加の原子的 putIfAbsent、remove、replace メソッドを提供する Map 。 |
Delayed | 指定された遅延後に動作するオブジェクトをマークするための、混合スタイルのインタフェース このインタフェースの実装は、getDelay メソッドと整合性のある順序を提供する compareTo メソッドを定義する必要があります。 |
Executor | 送信された Runnable タスクを実行するオブジェクト。 |
ExecutorService | 終了を管理するメソッド、および 1 つ以上の非同期タスクの進行状況を追跡する Future を生成可能なメソッドを提供する Executor 。 |
Future<V> | Future は、非同期計算の結果を表します。 |
RejectedExecutionHandler | ThreadPoolExecutor で実行不可能なタスクのハンドラ |
ScheduledExecutorService | 指定された遅延時間後、または周期的にコマンドの実行をスケジュール可能な ExecutorService 。 |
ScheduledFuture<V> | 取り消し可能な、遅延された結果生成アクション。 |
ThreadFactory | 要求に応じて新規スレッドを作成するオブジェクト。 |
クラスの概要 | |
---|---|
AbstractExecutorService | ExecutorService 実行メソッドのデフォルト実装を提供します。 |
ArrayBlockingQueue<E> | 配列に基づくバウンド形式のブロックキュー。 |
ConcurrentHashMap<K,V> | 取得の完全な同時性および予想される調整可能な更新同時性をサポートするハッシュテーブル。 |
ConcurrentLinkedQueue<E> | アンバウンド形式のスレッドセーフな キューベースのリンクノード。 |
CopyOnWriteArrayList<E> | 基になる配列の新しいコピーを作成することにより、すべての変更操作 (追加、設定など) が実装される ArrayList のスレッドセーフな変数です。 |
CopyOnWriteArraySet<E> | すべての操作で CopyOnWriteArrayList を使用する Set 。 |
CountDownLatch | 他のスレッドで実行中の操作セットが完了するまで、1 つ以上のスレッドを待機可能にする同期支援。 |
CyclicBarrier | スレッドセットのそれぞれが共通のバリアポイントに達するまで待機することを可能にする同期化支援機能。 |
DelayQueue<E extends Delayed> | Delayed 要素のアンバウンド形式のブロックキュー。 |
Exchanger<V> | 2 つのスレッドがオブジェクトを交換可能な同期ポイント。 |
ExecutorCompletionService<V> | タスクの実行に指定された Executor を使用する CompletionService 。 |
Executors | このパッケージで定義された Executor 、ExecutorService 、ScheduledExecutorService 、ThreadFactory 、および Callable クラス用のファクトリおよびユーティリティメソッド。 |
FutureTask<V> | 取り消し可能な非同期計算。 |
LinkedBlockingQueue<E> | リンクノードに基づく、オプションのバウンド形式ブロックキュー。 |
PriorityBlockingQueue<E> | PriorityQueue クラスと同じ順序付け規則を使用し、ブロック取得操作を提供する、アンバウンド形式のブロックキュー。 |
ScheduledThreadPoolExecutor | 指定された遅延後または周期的に実行するためのコマンドを追加スケジュール可能な ThreadPoolExecutor 。 |
Semaphore | カウントに使用されるセマフォ。 |
SynchronousQueue<E> | 各 put が take を待機し、その逆も実行する必要があるブロックキュー。 |
ThreadPoolExecutor | 多くの場合、プールされた複数のスレッドのいずれかを使用して、送信された各タスクを実行する ExecutorService 。 |
ThreadPoolExecutor.AbortPolicy | RejectedExecutionException をスローする、拒否されたタスクのハンドラ。 |
ThreadPoolExecutor.CallerRunsPolicy | executor がシャットダウンしていない場合に、execute メソッドのスレッド呼び出しで拒否されたタスクを直接実行する、拒否されたタスクのハンドラ。 |
ThreadPoolExecutor.DiscardOldestPolicy | executor がシャットダウンしていない場合に、もっとも古い未処理の要求を破棄して execute を再試行する、拒否されたタスクのハンドラ。 |
ThreadPoolExecutor.DiscardPolicy | 拒否されたタスクを予告なく破棄する、拒否されたタスクのハンドラ。 |
列挙型の概要 | |
---|---|
TimeUnit | TimeUnit は、期間を指定された粒度単位で表します。 |
例外の概要 | |
---|---|
BrokenBarrierException | 故障状態にあるか、スレッドの待機中に故障状態に入るバリアを、スレッドが待機しようとしているときにスローされる例外です。 |
CancellationException | タスクが取り消されたために、FutureTask などの値を生成するタスクの結果を取得できないことを示す例外。 |
ExecutionException | 例外のスローにより中断されたタスクの結果を取得しようとしたときに、スローされる例外。 |
RejectedExecutionException | タスクを受け入れて実行できない場合に、Executor によりスローされる例外 |
TimeoutException | ブロック操作がタイムアウトしたときにスローされる例外。 |
通常、ユーティリティクラスは並行プログラミングで有用です。このパッケージには、いくつかの小規模な標準化された拡張可能フレームワーク、および利便性が高く、他の点では単調で実装の困難な機能を提供するクラスが含まれます。以下に、主要コンポーネントについて簡潔に説明します。locks および atomic パッケージも参照してください。
Executor
は、スレッドプール、非同期入出力、および軽量タスクフレームワークを含む、スレッドに似たカスタムサブシステムを定義するための標準化された単純なインタフェースです。使用中の具象 Executor クラスに応じて、新規作成されたスレッド、既存のタスク実行スレッド、または execute() を呼び出すスレッド内でタスクを順次または同時に実行できます。ExecutorService
は、より完成度の高い同期タスク実行フレームワークを提供します。ExecutorService は、タスクのキューイングおよびスケジューリングを管理し、制御されたシャットダウンを可能にします。
ScheduledExecutorService
サブインタフェースは、遅延および周期的なタスク実行サポートを追加します。ExecutorServices は、Runnable
と類似した結果を得られる、Callable
で表現される任意の関数の非同期実行を取り決めるメソッドを提供します。Future
は、関数の結果を返し、実行が完了したかどうかを判別可能にし、実行を取り消す手段を提供します。
実装。ThreadPoolExecutor
および ScheduledThreadPoolExecutor
クラスは、チューニング可能で柔軟性の高いスレッドプールを提供します。Executors
クラスは、Executor のもっとも一般的な種類および構成のファクトリメソッド、およびこれらに特に対応したいくつかのユーティリティメソッドを提供します。Executor に基づく他のユーティリティには、Future の一般的な拡張可能実装を提供する具象クラス FutureTask
、および非同期タスクグループの処理調整を支援する ExecutorCompletionService
が含まれます。
ConcurrentLinkedQueue
クラスは、効率および拡張性が高く、スレッドセーフな非ブロッキング FIFO キューを提供します。java.util.concurrent の 5 つの実装 LinkedBlockingQueue
、ArrayBlockingQueue
、SynchronousQueue
、PriorityBlockingQueue
、および DelayQueue
は、put および take のブロッキングバージョンを定義する、拡張された BlockingQueue
インタフェースをサポートします。プロデューサ−コンシューマ、メッセージ処理、並行タスク実行、および関連する並行設計用のもっとも一般的な使用コンテキストは、異なるクラスの対象になります。
TimeUnit
クラスは、タイムアウトに基づく操作を指定および制御するための複数の詳細 (ナノ秒を含む) を提供します。パッケージ内の大半のクラスには、無制限の待機に加えてタイムアウトに基づく操作が含まれます。タイムアウトを使用する場合は常に、メソッドがタイムアウトを示す前に待機する必要のある最小時間が、タイムアウトにより指定されます。実装は、タイムアウトの発生後できるだけ早くそのことを検出するよう最善の努力を払いますが、タイムアウトの検出からタイムアウト後にスレッドが実際に再実行されまでの間に無制限の時間が経過する可能性があります。
Semaphore
is a classic concurrency tool.
CountDownLatch
is a very simple yet verySemaphore
は、標準的な並行処理ツールです。CountDownLatch
は、非常に単純ですが、指定された数の信号、イベント、または状態に達するまでブロックするための、一般的なユーティリティです。CyclicBarrier
は、一部の並行プログラミングで役に立つ、設定可能な多重同期ポイントです。Exchanger
を使用すると、2 つのスレッドが出会ったときにオブジェクトを交換することができます。これは、いくつかのパイプライン設計で有用です。
ConcurrentHashMap
、CopyOnWriteArrayList
、および CopyOnWriteArraySet
) を提供します。
このパッケージの一部のクラスで使用される接頭辞「Concurrent」は、類似の「synchronized」クラスといくつかの点で違いがあることを示します。たとえば、java.util.Hashtable および Collections.synchronizedMap(new HashMap()) は、同期化されます。ただし、ConcurrentHashMap
は「同時」です。同時コレクションは、スレッドセーフですが、単一の排他ロックにより制御されません。ConcurrentHashMap の特定のケースでは、同時コレクションは任意数の同時読み込みおよび調節可能な数の同時書き込みを安全に許可します。「同期化された」クラスは、単一のロックを介したコレクションへのアクセスすべてを、スケーラビリティを犠牲にしても防ぐ必要がある場合に有用です。複数のスレッドが共通のコレクションにアクセスすることが予想される他の場合には、通常は「同時」バージョンの方が優れています。同期化されていないコレクションは、コレクションが共有されていないか、他のロックを保持している場合にのみアクセス可能な場合に優れています。
大半の同時 Collection 実装 (大半の Queue を含む) では、Iterator によりファストフェイルトラバーサルではなく「弱い一貫性」が提供される点も java.util の通常の規約とは異なります。弱い一貫性を持つ反復子はスレッドセーフですが、必ずしも反復中にコレクションをフリーズする必要はないため、反復子の作成以降の更新を反映することも反映しないことも可能です。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。