|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface ActiveEvent
自分自身をディスパッチできるイベントのためのインタフェースです。このインタフェースを実装することにより、イベントはイベントキューに入れられ、EventDispatchThread
を使用してイベントがディスパッチされるときに dispatch()
メソッドが呼び出されます。
この機構は、デッドロックの発生を避けるために非常に有効です。スレッドがクリティカルセクションで実行されている場合、つまりスレッドが 1 つまたは複数のモニターに入っている場合、ほかの同期コードを呼び出すとデッドロックが発生することがあります。デッドロックの発生を避けるため、ActiveEvent
を作成して 2 番目のセクションのコードをあとで実行させることができます。モニターで競合がある場合、最初のスレッドが終了してモニターから抜けるまで、2 番目のスレッドはブロックされます。
セキュリティー上の理由から、ActiveEvent
を使用し、クリティカルスレッドから信頼できないコードが呼び出されるのを避けなければならない場合があります。たとえば、この機能をピアの実装で使用すると、システムスレッドからのユーザーコードの呼び出しを避けることができます。これにより、デッドロックやサービス妨害攻撃を回避できます。
メソッドの概要 | |
---|---|
void |
dispatch()
イベントをターゲットであるイベントソースのリスナーに送るか、あるいはこのイベントに指定されている処理を実行します。 |
メソッドの詳細 |
---|
void dispatch()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。