특징
- 여러 개의 스레드를 만들어 두고 여러 번 재사용되는 작업자 스레드 그룹을 나타낸다.
- 고정 크기로 생성된 스레드 풀에 Runnable object를 주고 실행을 요청하면, thread pool에서 thread를 가져와 실행한다.
- 만약 스레드 풀에 남아 있는 스레드가 없다면, 유휴 스레드가 생길 때 까지 해당 작업은 실행되지 못하고 대기 상태에 있게 된다.
- 실행 중이던 스레드는 작업이 완료되면 다시 스레드 풀로 돌아오게 되고, 대기 중인 작업이 있는 경우 다시 실행되게 된다.
장점
- 스레드 생성과 삭제에 따른 시간과 자원을 절약할 수 있다.
- 스레드 생성을 제한함으로써, 무분별한 자원 사용에 따른 문제점을 방지할 수 있다.
주의할 점
- Deadlock
- Multi-thread와 관련된 모든 프로그램에서 교착 상태가 발생할 수 있다.
- 작업 간 데이터 교환이 필요한 경우, 실행 작업과 대기 작업의 교착 상태가 발생할 수 있다.
- Thread Leakage
- 비정상 종료에 의한 실행 종료로 스레드 풀에서 제거되지 못하고 남아 있어 다른 작업이 진행되지 못한다.
- Resource Thrashing
- 지나치게 큰 스레드 풀을 사용할 경우, 스레드 간 context switching 시 느려지는 문제가 발생한다.
- 스레드 풀의 크기에 비해 실행되는 작업이 적을 경우, 자원 낭비가 발생한다.
'🚣활동 > NHN Academy' 카테고리의 다른 글
TCP (Transmission Control Protocol) (0) | 2025.02.10 |
---|---|
Socket, TCP, UDP (0) | 2025.02.10 |
Deadlock (교착 상태) (0) | 2025.02.04 |
Thread & Concurrency (1) | 2025.02.04 |
Main Thread, Single Thread, Multi Thread, Daemon Thread (1) | 2025.02.03 |
특징
- 여러 개의 스레드를 만들어 두고 여러 번 재사용되는 작업자 스레드 그룹을 나타낸다.
- 고정 크기로 생성된 스레드 풀에 Runnable object를 주고 실행을 요청하면, thread pool에서 thread를 가져와 실행한다.
- 만약 스레드 풀에 남아 있는 스레드가 없다면, 유휴 스레드가 생길 때 까지 해당 작업은 실행되지 못하고 대기 상태에 있게 된다.
- 실행 중이던 스레드는 작업이 완료되면 다시 스레드 풀로 돌아오게 되고, 대기 중인 작업이 있는 경우 다시 실행되게 된다.
장점
- 스레드 생성과 삭제에 따른 시간과 자원을 절약할 수 있다.
- 스레드 생성을 제한함으로써, 무분별한 자원 사용에 따른 문제점을 방지할 수 있다.
주의할 점
- Deadlock
- Multi-thread와 관련된 모든 프로그램에서 교착 상태가 발생할 수 있다.
- 작업 간 데이터 교환이 필요한 경우, 실행 작업과 대기 작업의 교착 상태가 발생할 수 있다.
- Thread Leakage
- 비정상 종료에 의한 실행 종료로 스레드 풀에서 제거되지 못하고 남아 있어 다른 작업이 진행되지 못한다.
- Resource Thrashing
- 지나치게 큰 스레드 풀을 사용할 경우, 스레드 간 context switching 시 느려지는 문제가 발생한다.
- 스레드 풀의 크기에 비해 실행되는 작업이 적을 경우, 자원 낭비가 발생한다.
'🚣활동 > NHN Academy' 카테고리의 다른 글
TCP (Transmission Control Protocol) (0) | 2025.02.10 |
---|---|
Socket, TCP, UDP (0) | 2025.02.10 |
Deadlock (교착 상태) (0) | 2025.02.04 |
Thread & Concurrency (1) | 2025.02.04 |
Main Thread, Single Thread, Multi Thread, Daemon Thread (1) | 2025.02.03 |