스레드 풀의 이해와 활용

스레드 풀 사용법 1. 스레드 풀이란 무엇인가 풀: 컨테이너 스레드 풀: 스레드를 저장하는 컨테이너 여기서 누군가 질문할 수 있습니다. 우리가 스레드를 생성해서 작업을 실행하고 작업이 끝나면 스스로 사라지지 않아도 될까요? 왜 컨테이너에 저장해야 할까요? 기억하세요: 스레드 풀은 스레드 재사용 기술입니다. 재사용: 반복 사용 스레드 풀 기술은 스레드를 반 ...

7월 18일 07:57에 게시됨

Java에서의 스레드 풀과 비동기 작업 처리: Executor, Callable, Future, FutureTask

스레드 관리의 핵심: 실행자 패턴 소개 기존의 Thread와 Runnable을 직접 사용하는 방식은 스레드 생성/종료의 부담이 크며, 성능 저하를 초래할 수 있습니다. 대신 Executor 계층 구조를 활용하면 스레드의 생명주기 관리와 작업 제출을 분리할 수 있습니다. 실행자 인터페이스의 계층 구조 Executor: 단순한 작업 제출 기능만 제공 (execute(Runnable)) ExecutorServic ...

7월 13일 21:34에 게시됨

BeginInvoke와 EndInvoke를 활용한 비동기 메서드 호출

비동기 처리에서 BeginInvoke는 스레드 풀에서 하나의 스레드를 할당하고, 지정된 메서드를 별도의 스레드에서 실행하도록 합니다. 이 과정에서 BeginInvoke는 호출자 스레드에 IAsyncResult 인터페이스를 통해 상태 정보를 반환합니다. 이 인터페이스는 비동기 작업의 진행 상황을 추적하는 데 사용됩니다. EndInvoke는 비동기 호출의 결과 값을 가져오며, 해당 ...

6월 23일 01:56에 게시됨

Java 동시성 프로그래밍 실전: 스레드 풀 작업 큐의 5가지 구현 및 적용 상황 분석

1장: 스레드 풀 작업 큐의 핵심 역할과 설계 원리 동시성 프로그래밍의 핵심 구성 요소인 스레드 풀에서, 작업 큐의 설계는 시스템 처리량, 응답 시간 및 자원 활용도에 직접적인 영향을 미칩니다. 작업 큐는 생산자와 소비자 간의 버퍼 역할을 수행하여 비동기 작업을 수락하고 작업 스레드가 스케줄링 전략에 따라 꺼내 실행합니다. #### 작업 큐의 기본 책임 실행 대기 ...

6월 15일 01:48에 게시됨

스레드 풀 사용 시 주의사항과 모범 사례

스레드 풀 올바르게 선언하기 스레드 풀은 반드시 `ThreadPoolExecutor` 생성자를 통해 수동으로 선언해야 하며, `Executors` 클래스를 사용하여 생성하면 OOM(메모리 부족) 위험이 있습니다. `Executors`가 반환하는 스레드 풀에는 다음과 같은 문제점이 있습니다: `FixedThreadPool`과 `SingleThreadExecutor`: 무제한 `LinkedBlockingQueue`를 사용하며, 큐 크기가 `In ...

6월 1일 18:42에 게시됨