Интерфейс ActiveEvent
- Все известные реализующие классы:
InvocationEvent
public interface ActiveEvent
Интерфейс для событий, которые знают, как себя отправлять. Реализовав этот интерфейс, событие можно поместить в очередь событий, и его метод dispatch() будет вызван при отправке события, используя EventDispatchThread.
Это очень полезный механизм для предотвращения тупиковых ситуаций. Если поток выполняется в критической секции (то есть вошел в один или несколько мониторов), вызов другого синхронизированного кода может привести к тупиковой ситуации. Чтобы избежать потенциальных тупиковых ситуаций, можно создать ActiveEvent, чтобы выполнить вторую часть кода в более позднее время. Если возникает конфликт на мониторе, второй поток просто блокируется до тех пор, пока первый поток не закончит свою работу и не выйдет из своих мониторов.
По соображениям безопасности часто желательно использовать ActiveEvent для предотвращения вызова небезопасного кода из критического потока. Например, реализации сторон могут использовать этот механизм, чтобы избежать вызовов пользовательского кода из системного потока. Это помогает избежать потенциальных тупиковых ситуаций и атак типа "отказ в обслуживании".
- С момента:
- 1.2
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | dispatch() | Отправить событие в его целевой объект, слушателям источника события или выполнить то, что предполагается делать этому событию. |
Методы
dispatch
void dispatch()
Отправить событие в его целевой объект, слушателям источника события или выполнить то, что предполагается делать этому событию.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/ActiveEvent.html