public class EventQueueController extends Object
イベントコントローラは、指定された時間間隔に従ってリスナー登録状況を確認し、
リスナーの登録が1つ以上あった場合、これらを専用スレッドで実行します。
このとき、イベントリスナーの実行順と実行の直列化が保証されます。
これらの機能により、通常の関数実行や java.lang.Thread クラスを利用した
並列処理などと異なった機能を実装することができます。
このクラスを利用することにより、現在の処理とイベント処理を並列化することが できます。また、一つのコントローラは同時に一つのイベントリスナーしか 実行しないため、それぞれのリスナーの処理が並列処理されることはありません。 従って、リスナーはマルチスレッドを意識したプログラムにする必要がありますが、 リスナー間でマルチスレッドを意識する必要はありません。
EventListener
コンストラクタと説明 |
---|
EventQueueController()
イベントリスナーを管理・実行するためのコントローラ・オブジェクトを
構築します。
|
EventQueueController(long millis)
イベントリスナーを管理・実行するためのコントローラ・オブジェクトを
構築します。
|
修飾子とタイプ | メソッドと説明 |
---|---|
void |
entry(EventListener listener)
イベントリスナーの登録。
|
void |
eventGenerating()
キューに登録されているイベントリスナーを一つ実行します。
|
protected void |
finalize()
このオブジェクトがガーベージコレクションによって破棄される時に、
ガーベージコレクタによって呼び出されます。
|
void |
flush()
キューに溜まっているすべてのイベントリスナーを実行します。
|
void |
setCapacity(int max)
キューの容量を変更します。
|
public EventQueueController()
public EventQueueController(long millis) throws IllegalArgumentException
millis
- イベントの監視間隔(ミリ秒)IllegalArgumentException
- millis が 0 以下の場合public void setCapacity(int max) throws IllegalStateException, IllegalArgumentException
max
- イベントをプールできる最大量IllegalStateException
- max 個以上のリスナーが登録されている場合IllegalArgumentException
- max が 0 以下の場合public void entry(EventListener listener) throws NullPointerException, IndexOutOfBoundsException, IllegalStateException
実行されたリスナーは、処理が終了すると破棄されます。
通常のスレッドクラスを利用した並列処理との違いは、 イベントリスナーが登録順に実行される点と、 イベントリスナーの実行が直列化される点にあります。
listener
- イベントリスナーNullPointerException
- listener が null の場合IndexOutOfBoundsException
- キューが飽和状態の場合IllegalStateException
- コントローラが破棄処理済の場合public void flush()
このメソッドは、現在実行中のスレッドで すべてのイベント処理を行います。
public void eventGenerating() throws NoSuchElementException
NoSuchElementException
- 登録リスナーがない場合Copyright © 2012 NTT DATA INTRAMART CORPORATION