-
Notifications
You must be signed in to change notification settings - Fork 0
2. Terminate Thread
dami0806 edited this page Jan 26, 2025
·
1 revision
대기 상태 또는 블록 상태일 경우 catch문에 InterruptedException를 처리해야 Thread.interrupt();에 응답이 됩니다.
메인 스레드가 너무 빨리 종료되면 데몬 스레드가 실행될 시간이 부족할 수도 있었다
- Thread.sleep(100) // 메인 스레드가 잠시 멈춰 새로운 스레드가 실행될 시간부여
- LongComputaionTread에서 setDeamon(true);추가
- 모든 일반스레드가 종료되면 JVM이 종료됩니다.
- 데몬 스레드(Daemon Thread) 만 남아 있다면 JVM은 자동으로 애플리케이션을 종료합니다.
일반 스레드(User Thread):
- 애플리케이션의 주요 작업을 담당합니다.
- 일반 스레드가 남아 있는 한 JVM은 종료되지 않습니다.
데몬 스레드(Daemon Thread):
- JVM의 백그라운드에서 동작하는 보조 작업을 수행합니다(로그 수집, 메모리 정리, 스케줄링을 통한 임시저장).
- 모든 일반 스레드가 종료되면, JVM은 남아 있는 데몬 스레드를 강제로 종료합니다.
-
운영 체제의 기본 내용 및 멀티스레딩과 병행성이 필요한 이유
-
멀티스레딩의 기본 - Java에서 스레드를 생성하는 방법 및 스레드 간에 소통하는 방법
-
멀티스레드 병렬 실행 애플리케이션의 성능 관련 고려 사항 및 설계 패턴. 지연 시간 또는 처리량을 최적화하는 방법
-
Java에서 스레드 간에 데이터를 공유하는 방법. 발생할 수 있는 모든 함정과 어려움 및 솔루션과 모범 사례
-
반응성과 성능을 향상시킬 수 있는 락이 걸리지 않은 고급 알고리즘 및 데이터 구조