Spec-Zone.ru › OpenJDK 25

Интерфейс ActiveEvent

Все известные реализующие классы:
InvocationEvent
public interface ActiveEvent
Интерфейс для событий, которые умеют самостоятельно выполнять диспетчеризацию. Реализовав этот интерфейс, событие можно поместить в очередь событий, и при диспетчеризации события будет вызван его метод dispatch() с использованием EventDispatchThread.

Это очень полезный механизм, позволяющий избежать взаимных блокировок. Если поток выполняется в критической секции (то есть он вошёл в один или несколько мониторов), вызов другого синхронизированного кода может привести к взаимным блокировкам. Чтобы избежать потенциальных взаимных блокировок, можно создать ActiveEvent для выполнения второй части кода позднее. Если возникнет конкуренция за монитор, второй поток просто заблокируется, пока первый поток не завершит работу и не выйдет из своих мониторов.

Из соображений безопасности часто желательно использовать ActiveEvent, чтобы избежать вызова недоверенного кода из критического потока. Например, реализации peer могут использовать этот механизм, чтобы не вызывать пользовательский код из системного потока. Это позволяет избежать потенциальных взаимных блокировок и атак типа «отказ в обслуживании».

Начиная с:
1.2

Краткое описание методов

Модификатор и тип Метод Описание
void dispatch()
Выполняет диспетчеризацию события для его целевого объекта, слушателей источника события или выполняет иное действие, предусмотренное для этого события.

Подробное описание методов

dispatch

void dispatch()
Выполняет диспетчеризацию события для его целевого объекта, слушателей источника события или выполняет иное действие, предусмотренное для этого события.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры основных понятий, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API