울음참고 개발공부
Published 2023. 11. 13. 10:11
Java | InterruptedException 이란? Backend/Java
728x90

 

 

InterruptedException

 

Java 에서 멀티스레딩을 다룰 때 발생할 수 있는 예외중 하나

스레드가 interrupted 되었을 때 발생하며, 스레드가 일시적으로 멈추거나 작업을 중단해야할 때 사용됨

 

 

 

InterruptedException 을 발생시키는 예외

 

<java />
public class InterruptExample { public static void main(String[] args) { Thread myThread = new Thread(() -> { try { for (int i = 0; i < 5; i++) { System.out.println("Working " + i); Thread.sleep(1000); // 스레드를 1초간 일시 정지 } } catch (InterruptedException e) { System.out.println("인터럽트로 작업이 중단되었습니다!"); } }); myThread.start(); // 스레드 시작 // 메인 스레드에서 myThread를 3초 후 interrupt하여 작업을 중단 try { Thread.sleep(3000); myThread.interrupt(); // 스레드 interrupt } catch (InterruptedException e) { e.printStackTrace(); } } }

 

 

이 코드에서 myThread 는 5번의 작업을 수행하며 각 작업은 1초씩 일시 중지한다.

하지만 main 메서드에서는 myThread를 3초 후에 interrupt 하여 작업을 중단한다

 

이때, Thread.sleep(1000) 에서 InterreuptedException 이 발생하며 스레드는 중단되고 "인터럽트로 작업이 중단되었습니다!" 가 출력된다.

 

실제로는 스레드가 복잡한 작업을 수행할 때, interrupt() 를 통해 해당 스레드를 중단시키는 것이 일반적이다

( 스레드가 파일 작업이나 네트워크 통신 등을 수행 중인 경우, 이 예외를 처리하여 작업을 안전하게 중단하고 정리할 수 있다 ) 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!