ActiveEvent — 스스로 디스패치할 수 있는 이벤트

ActiveEvent — 스스로 디스패치할 수 있는 이벤트

ActiveEvent는 스스로 디스패치하는 방법을 아는 이벤트를 위한 인터페이스예요.

출처: Java API Reference

본문

public interface ActiveEvent

이 인터페이스를 구현하면 이벤트를 이벤트 큐에 넣을 수 있고, EventDispatchThread를 통해 이벤트가 디스패치될 때 이벤트의 dispatch() 메서드가 호출돼요.

이는 데드락을 피하는 데 매우 유용한 메커니즘이에요. 스레드가 임계 영역(critical section) 안에서 실행 중일 때 다른 동기화된 코드를 호출하면 데드락이 발생할 수 있는데, ActiveEvent를 사용하면 두 번째 코드 조각을 나중에 실행하도록 만들 수 있어요.

보안 관점에서도 중요 스레드에서 신뢰할 수 없는 코드를 호출하는 것을 피하기 위해 ActiveEvent를 사용하는 것이 바람직해요. 예를 들어 peer 구현은 시스템 스레드에서 사용자 코드로의 호출을 피하기 위해 이 기능을 사용할 수 있어요.

이렇게 하면 잠재적인 데드락과 서비스 거부(denial-of-service) 공격을 피할 수 있어요. JDK 1.2부터 사용할 수 있어요.

더 알아보기