public interface ActiveEvent
EventDispatchThread
を使用してイベントがディスパッチされるときに dispatch()
メソッドが呼び出されます。
このメカニズムは、デッドロックの発生を避けるために非常に有効です。スレッドがクリティカルセクションで実行されている場合、つまりスレッドが 1 つまたは複数のモニターに入っている場合、ほかの同期コードを呼び出すとデッドロックが発生することがあります。デッドロックの発生を避けるため、ActiveEvent
を作成して 2 番目のセクションのコードをあとで実行させることができます。モニターで競合がある場合、最初のスレッドが終了してモニターから抜けるまで、2 番目のスレッドはブロックされます。
セキュリティー上の理由から、ActiveEvent
を使用し、クリティカルスレッドから信頼できないコードが呼び出されるのを避けなければならない場合があります。たとえば、この機能をピアの実装で使用すると、システムスレッドからのユーザーコードの呼び出しを避けることができます。これにより、デッドロックやサービス妨害攻撃を回避できます。
修飾子と型 | メソッドと説明 |
---|---|
void |
dispatch()
イベントをターゲットであるイベントソースのリスナーに送るか、あるいはこのイベントに指定されている処理を実行します。
|
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.