Интерфейс ActiveEvent
- Все известные реализующие классы:
InvocationEvent
public interface ActiveEvent
dispatch() с использованием EventDispatchThread. Это очень полезный механизм, позволяющий избежать взаимных блокировок. Если поток выполняется в критической секции (то есть он вошёл в один или несколько мониторов), вызов другого синхронизированного кода может привести к взаимным блокировкам. Чтобы избежать потенциальных взаимных блокировок, можно создать ActiveEvent для выполнения второй части кода позднее. Если возникнет конкуренция за монитор, второй поток просто заблокируется, пока первый поток не завершит работу и не выйдет из своих мониторов.
Из соображений безопасности часто желательно использовать ActiveEvent, чтобы избежать вызова недоверенного кода из критического потока. Например, реализации peer могут использовать этот механизм, чтобы не вызывать пользовательский код из системного потока. Это позволяет избежать потенциальных взаимных блокировок и атак типа «отказ в обслуживании».
- Начиная с:
- 1.2
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
dispatch() |
Выполняет диспетчеризацию события для его целевого объекта, слушателей источника события или выполняет иное действие, предусмотренное для этого события. |
Подробное описание методов
dispatch
void dispatch()
© 1993, 2025, 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/25/docs/api/java.desktop/java/awt/ActiveEvent.html