Pool을 활용하여 Thread 생성
( 미리 공간을 확보해 놓고, Thread 생성 요청이 있을 때만 생성 )
Pool을 활용하여 Thread 생성 ( ThreadPool )
⇒ 접시에 미리 '수저'만 세팅해놓고, 그때그때마다 들어오는 손님의 수에 맞춰서 '음식'을 함
Pool을 활용하지 않고 Thread 생성
⇒ 오늘 올 손님의 수를 예측하여, 그 수만큼 미리 '수저+음식'을 다 해놓음
※ Pool을 활용하지 않고 Thread 생성할 경우의 단점
ex) 미리 5개 생성 → 그런데, 실제로는 3개만 필요 ( 2개 미리 생성해 놓은 거는 낭비 )
미리 5개 생성 → 그런데, 실제로는 8개나 필요 ( 부리나케 3개를 더 만들어놔야 함 )
package threads;
public class ThreadPool {
public static void main(String[] args) {
for(int i = 0; i < 10; i++) {
// 람다식을 적용한 Thread
Thread th = new Thread(()->{
while(true) {
System.out.println(Thread.currentThread().getName()+"가 실행중"); // Thread 명을 별도로 설정하지 않을 시 -> [ Thread-n ]으로 자동 설정됨
}
});
th.start();
}
}
}
※ 이걸로 ThreadPool 안 하심 → 아래에서 새로이 다시 함