JAVA

Hagi 2009. 10. 30. 10:31

 검색엔진의 ROBOT을 개발하다 보니, 평범한 웹 개발자들이 쓰지 않을 듯한 Thread를 써야할 것 같다.

 

 그 중에서 시스템의 부담을 줄이기 위해서 Thread Pool을 써야한다는 것을 알게 되었다. Big JAVA라는 책에 잠깐 소개되어서 알게 되었다. 

 

int MAX_THREADS = 2;

ExecutorService pool = Executors.newFixedThreadPool(MAX_THREADS);
pool.execute(runRobot1);
pool.execute(runRobot2);

pool.execute(runRobot3);

 

이것이 스레드 풀의 모든 것이다.

최대값이 2라면 runRobot3는 runRobot1이나 runRobot2 중에 하나가 끝날때까지 기다린다.

스레드를 새로 생성하는 것은 시간이 많이 소모되는 일이기 때문에 동작이 끝난 스레드를 runRobot3가 넘겨 받는다.

 

현재는 이것의 우선 순위에 대해서 알아보고 있다.

 

 Thread Pool에 대한 개념은 KT에서 대규모 데이터 처리 시스템을 만드시는 분의 블로그 에 가면 자세히 나와있다.

 

 Thread Pool 소스가 있는 블로그

 

Thread Pool에 대해 자세히 나와 있는 블로그