|
intra-mart(R) 5.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object jp.co.intra_mart.common.aid.jdk.util.EventQueueController
このクラスは、イベントリスナーを実行するイベント機能を実装します。
イベントコントローラは、指定された時間間隔に従ってリスナー登録状況を確認し、
リスナーの登録が1つ以上あった場合、これらを専用スレッドで実行します。
このとき、イベントリスナーの実行順と実行の直列化が保証されます。
これらの機能により、通常の関数実行や java.lang.Thread クラスを利用した
並列処理などと異なった機能を実装することができます。
このクラスを利用することにより、現在の処理とイベント処理を並列化することが できます。また、一つのコントローラは同時に一つのイベントリスナーしか 実行しないため、それぞれのリスナーの処理が並列処理されることはありません。 従って、リスナーはマルチスレッドを意識したプログラムにする必要がありますが、 リスナー間でマルチスレッドを意識する必要はありません。
EventListener
コンストラクタの概要 | |
EventQueueController()
イベントリスナーを管理・実行するためのコントローラ・オブジェクトを 構築します。 |
|
EventQueueController(long millis)
イベントリスナーを管理・実行するためのコントローラ・オブジェクトを 構築します。 |
メソッドの概要 | |
void |
entry(EventListener listener)
イベントリスナーの登録。 |
void |
eventGenerating()
キューに登録されているイベントリスナーを一つ実行します。 |
protected void |
finalize()
このオブジェクトがガーベージコレクションによって破棄される時に、 ガーベージコレクタによって呼び出されます。 |
void |
flush()
キューに溜まっているすべてのイベントリスナーを実行します。 |
void |
setCapacity(int max)
キューの容量を変更します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
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
- 登録リスナーがない場合protected void finalize() throws Throwable
Throwable
|
intra-mart(R) 5.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |