ExecutorService

Java

ExecutorService 사용법 완벽 정리 (Thread Pool, Future, submit까지 쉽게 설명)

자바 멀티스레드 공부하다 보면 어느 순간 이런 생각이 든다."Thread를 직접 계속 생성해도 되나?"가능은 하다.근데 실무에서는 거의 잘 안 쓴다.왜냐면:✔ 스레드 생성 비용 큼✔ 너무 많이 생성하면 성능 저하✔ 관리 어려움✔ 메모리 사용 증가문제가 생기기 때문이다.그래서 실무에서는 대부분:👉 ExecutorService를 사용한다.오늘은 초보자도 이해할 수 있게ExecutorService 사용법을 쉽게 정리해보겠다.ExecutorService 란?👉 스레드를 효율적으로 관리해주는 스레드 풀(Thread Pool) 시스템쉽게 말하면:스레드를 미리 만들어두고재사용하는 구조이다.왜 사용할까?만약 요청마다:new Thread()계속 생성하면:✔ 생성 비용 증가✔ 메모리 사용 증가✔ 컨텍스트 스위칭 증가발..

Java

Thread vs Runnable 차이 완벽 정리 (자바 멀티스레드 초보자용 설명)

자바 멀티스레드 공부 시작하면 거의 무조건 만나게 되는 두 가지가 있다.👉 Thread👉 Runnable처음에는:"둘 다 스레드 만드는 거 아닌가?"싶다.맞다.둘 다 스레드를 만들 수 있다.근데 내부 개념과 사용 방식은 꽤 다르다.이 차이를 제대로 이해하면:✔ 자바 멀티스레드 구조✔ 객체지향 설계✔ ExecutorService✔ Thread Pool✔ 실무 스레드 설계 방식이런 개념들이 한 번에 연결된다.그리고 면접에서도 진짜 자주 나온다.오늘은 Thread vs Runnable 차이를 초보자 기준으로 쉽게 정리해보겠다.먼저 스레드(Thread)란?👉 프로그램 안에서 실제 작업을 수행하는 실행 흐름예시:✔ 게임 캐릭터 이동✔ 음악 재생✔ 채팅 처리이런 걸 동시에 실행 가능하게 만든다.Thread 방..

Java

RejectedExecutionException 완벽 정리 (자바 스레드풀 작업 거부 원인 + 해결 방법 + ThreadPoolExecutor 설정)

자바에서 멀티스레드나 비동기 작업을 쓰다 보면, 어느 순간 이런 에러를 만나게 된다.👉 RejectedExecutionException이건 초보 때는 거의 안 나오지만,스레드 풀(ThreadPool) 쓰기 시작하면 높은 확률로 마주친다.RejectedExecutionException 이란?👉 "실행하려고 한 작업이 거부되었을 때 발생하는 예외"즉,✔ 작업(Task)을 실행하려고 했는데✔ Executor(스레드 풀)가 더 이상 받아줄 수 없을 때 터진다가장 기본적인 예제import java.util.concurrent.*;public class Main { public static void main(String[] args) { ExecutorService executor = Exec..

Java

ExecutionException 완벽 정리 (Future.get 에러 원인 분석 + getCause 사용법 + 비동기 예외 처리)

멀티스레드나 비동기 처리(Future, ExecutorService)를 쓰기 시작하면 한 번쯤 마주치는 예외가 있다.👉 ExecutionException이건 처음 보면 “뭐가 실행이 잘못됐다는 거지?” 싶지만,핵심은 굉장히 명확하다.ExecutionException 이란?👉 "비동기 작업에서 발생한 예외를 감싸서 전달하는 Wrapper 예외"즉,✔ 실제 에러는 따로 있고✔ 그 에러를 ExecutionException이 감싸서 던진다가장 중요한 포인트👉 진짜 원인은 따로 있다 (getCause로 확인해야 함)이걸 모르면 디버깅 계속 헤맨다.기본 예제 (Future)import java.util.concurrent.*;public class Main { public static void main(..

Coding_Slowly
'ExecutorService' 태그의 글 목록