[java] 인터럽트의 처리 방법은?
인터럽트를 처리하기 위해서는 다음과 같은 방법을 사용할 수 있습니다:
-
interrupted()
메서드 사용:Thread
클래스에는interrupted()
라는 정적 메서드가 있습니다. 이 메서드를 호출하면 현재 스레드가 인터럽트가 발생했는지 여부를 알려줍니다.if (Thread.interrupted()) { // 인터럽트 발생 시 수행할 로직 작성 }
-
isInterrupted()
메서드 사용:Thread
클래스의 인스턴스 메서드인isInterrupted()
는 현재 스레드가 인터럽트가 발생했는지 여부를 알려줍니다.if (Thread.currentThread().isInterrupted()) { // 인터럽트 발생 시 수행할 로직 작성 }
-
InterruptedException
예외 처리:InterruptedException
은 스레드가sleep()
,wait()
,join()
과 같은 메서드를 실행하는 도중에 인터럽트를 받은 경우 발생하는 예외입니다. 이 예외를 처리하여 인터럽트에 대한 적절한 조치를 취할 수 있습니다.try { // 스레드를 일시 중단하는 작업 } catch (InterruptedException e) { // 인터럽트 발생 시 수행할 로직 작성 }
인터럽트는 스레드 간의 협력적인 작업을 가능하게 해주는 강력한 기능입니다. 올바르게 인터럽트를 처리함으로써 스레드의 실행을 효과적으로 제어할 수 있습니다.
더 자세한 내용은 Java 공식 문서를 참조하시기 바랍니다.