Executor2 [인프런] 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 / 11. 스레드 풀과 Executor 프레임워크 2 ExecutorService 우아한 종료 - 소개ExecutorService의 종료 메서드 1. 서비스 종료void shutdown()> 새로운 작업을 받지 않고 이미 제출된 작업을 모두 완료한 후 종료> 논 블로킹 메서드 : 이 메서드를 호출한 스레드는 대기하지 않고 바로 다음 코드 호출 1) shutdown() 호출2) ExecutorService는 새로운 요청 거절3) 스레드 풀의 스레드는 처리중인 작업 완료4) 스레드 풀의 스레드는 큐에 남아있는 작업도 모두 꺼내 완료5) 모든 작업을 완료하면 자원 정리 List shutdownNow()> 실행 중인 작업을 중단하고 대기 중인 작업을 반환해 즉시 종료> 실행 중인 작업을 중단하기 위해 인터럽트를 발생시킴> 논 블로킹 메서드 1) shutdownN.. 2025. 4. 2. [인프런] 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 / 11. 스레드 풀과 Executor 프레임워크 1 스레드를 직접 사용할 때의 문제점실무에서 스레드를 직접 생성해 사용하면 다음과 같은 문제가 있다. 1. 스레드 생성 비용으로 인한 성능 문제1.1 메모리 할당 : 각 스레드는 자신만의 호출 스택을 가지고 있어야 함 -> 스레드가 실행되는 동안 사용하는 메모리 공간1.2 스레드 관리 문제 : 스레드 생성 작업은 OS 커널 수준에서 이뤄지며 시스템 콜을 통해 처리됨 -> CPU와 메모리 리소스 소모1.3 운영체제 스케줄러 설정 : 새로운 스레드 생성 시 OS 스케줄러는 이 스레드를 관리하고 실행 순서를 조장해야 함 -> 스케줄링 알고리즘에 따라 오버헤드가 발생할 수 있음 -> 단순 자바 객체 생성과는 비교할 수 없을 정도로 스레드 생성은 큰 작업 2. 스레드 관리 문제서버의 CPU, 메모리 자원은 한정적이기.. 2025. 4. 1. 이전 1 다음