← 질문 목록
#146깊이 0
스레드 풀을 사용하는 주된 이유는 무엇인가?
답변 연습
내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요
스레드 생성과 제거에 드는 오버헤드를 줄이기 위해서다. 요청마다 스레드를 새로 만들면 커널 모드 전환과 메모리 할당 비용이 반복적으로 발생한다.
유휴
실행
작업 큐에 쌓인 요청을 가져간다
실행
유휴 (앞의 상태로 돌아갑니다)
처리가 끝나면 소멸하지 않고 풀로 돌아간다
작업 큐에 요청이 들어오면 풀에 있는 유휴 스레드가 이를 가져가 처리한다. 처리가 끝나면 스레드는 소멸하지 않고 다시 풀로 돌아가 다음 작업을 기다린다.
적절한 풀 크기를 설정하지 않으면 문제가 생긴다. 너무 작으면 요청이 큐에 쌓여 응답 시간이 느려지고, 너무 크면 컨텍스트 스위칭 비용이 커져 전체 처리량이 떨어진다.
추천 꼬리질문
관련 질문
- 스레드를 늘려도 CPU 병렬성이 없는 이유는?언어 · 런타임스레드 생성 및 관리 비용과 CPU 자원 활용의 효율성이라는 공통된 개념을 다룹니다.
- 커넥션 풀을 사용하는 이유는 무엇인가?데이터베이스스레드 풀과 커넥션 풀 모두 리소스 생성 및 파괴 비용을 줄이기 위해 미리 객체를 생성해두고 재사용하는 풀링(Pooling) 개념을 공유한다.
- 프로세스와 스레드의 핵심 차이는 무엇인가?운영체제스레드 풀의 효율성을 이해하려면 먼저 프로세스와 스레드의 구조적 차이와 스레드 생성 비용에 대한 이해가 필요하다.
- 커넥션 풀 크기를 CPU 코어 수로 잡는 이유는?데이터베이스제한된 CPU 코어 위에서 동시 실행 수를 제한하는 풀링 원리를 공유한다
- 함수형 프로그래밍을 적용하는 이유는 무엇인가?언어 · 런타임