2024/12/21 2

스레드 풀과 Executor 프레임워크 - 2

ExecutorService 우아한 종료서비스를 안정적으로 종료하는 것도 매우 중요하다. 이렇게 문제 없이 우아하게 종료하는 방식을 graceful shutdown 이라 한다.  서비스 종료void shutdown()새로운 작업을 받지 않고, 이미 제출된 작업을 모두 완료한 후에 종료한다.논 블로킹 메서드(이 메서드를 호출한 스레드는 대기하지 않고 즉시 다음 코드를 호출한다.) List shutdownNow()실행 중인 작업을 중단하고, 대기 중인 작업을 반환하며 즉시 종료한다.실행 중인 작업을 중단하기 위해 인터럽트를 발생시킨다.논 블로킹 메서드 서비스 상태 확인boolean isShutdown(): 서비스가 종료되었는지 확인한다.boolean isTerminated(): shutdown(), shut..

운영체제 2024.12.21

스레드 풀과 Executor 프레임워크

스레드를 직접 사용할 때의 문제점스레드 생성 시간으로 인한 성능 문제스레드 관리 문제Runnable 인터페이스의 불편함 1. 스레드 생성 비용으로 인한 성능 문제스레드를 사용하려면 먼저 스레드를 생성해야 한다. 그런데 스레드는 다음과 같은 이유로 매우 무겁다. 메모리 할당 : 각 스레드는 자신만의 호출 스택(call stack)을 가지고 있어야 한다. 이 호출 스택은 스레드가 실행되는 동안 사용하는 메모리 공간이다. 따라서 스레드를 생성할 때는 이 호출 스택을 위한 메모리를 할당해야 한다. 운영체제 자원 사용 : 스레드를 생성하는 작업은 운영체제 커널 수준에서 이루어지며, 시스템 콜(system call)을 통해 처리된다. 이는 CPU와 메모리 리소스를 소모하는 작업이다. 운영체제 스케줄러 설정 : 새로..

운영체제 2024.12.21