공부한것들을 정리하는 블로그 입니다.
InterruptedException에 대해 짧게 정리(JVM, 쓰레드, sleep, wait) 본문
* 해당 글은 계속 수정 예정입니다.
최초 작성일 2023.06.16
마지막 수정일 2023.04
1. InterruptedException은 JVM이 발생시킨다.
쓰레드가 데드락(DeadLock)에 빠졌을 때, (waiting, sleeping, interrupted 된 상태)
JVM은 InterruptedException을 발생시킨다.
2. InterruptedException은 JVM의 쓰레드 관리에 관한 내용이다. (강제중단 방법)
WAIT : 동시성으로 인한 멀티쓰레드의 실행에서. 실행중인 하나의 쓰레드가 동작하고 있을때,
나머지 쓰레드는 waiting 상태에서 대기하는데.
이때 JVM은 sleep(), wait() 메서드를 이용해 쓰레드의 상태를 제어 가능하다.
3. InterruptedException은 BLOCK 된 쓰레드에 대한 JVM의 제어.
만약 쓰레드가 sleep, wait 상태에서 BLOCK이 된다면.
BLOCK된 쓰레드는 애플리케이션 코드를 순차적으로 읽는 역할을 멈춘채, runnable 상태가 되기를(WAIT이 끝나기를) 기다린다.
이때 JVM은 영원히 기다리지 않고, BLOCK 된 스레드를 interrupt 후 InterruptedException을 발생시킨다.
4. Interrupt (일시정지)를 강제로 호출하는 상황?
테트리스, 타자게임 진행 중 레벨업을 할 경우 초기화가 진행되고 다음 스테이지로 넘어간다.
이때 레벨업 이벤트가 실행되면 내부에서 Interrupt 의 호출을 고려해볼 수 있다.
'경력 실무경험 > 생각해볼만한 주제' 카테고리의 다른 글
자바 예외처리, 에러 핸들링에 대해 짧게 정리 (0) | 2023.04.28 |
---|---|
에러 핸들링 비교 (Return OR throw Exception) (0) | 2023.04.26 |
외부 API 사용에 대해 짧게 정리 (장애발생 고려) (0) | 2023.04.26 |
접근제한자 protected는 언제, 어떻게 사용해야 할까 (0) | 2023.04.25 |
자바를 쓰면 왜 좋을까요? (0) | 2023.04.25 |
동시성, 병렬, 비동기, 논블럭킹과 컨셉들 (0) | 2023.02.01 |
테스트를 최적화하는 방법 - 3가지 방식 (0) | 2022.05.24 |
무중단 배포 아키텍처 - 3가지 방식 (0) | 2022.05.18 |