티스토리 뷰

BackEnd/Java

Thread pool(쓰레드 풀)

철철22 2018. 10. 22. 10:01
반응형


Thread pool(쓰레드 풀) 이라는 개념이 있습니다.


위키피디아에서는 '컴퓨터 프로그래밍에서 스레드 풀은 컴퓨터 프로그램에서 (동시 실행)을 달성하기위한 소프트웨어 디자인 패턴' 이라고 합니다.


즉, 병렬 프로세스를 위해 사용하는 거라고 생각합니다.


쓰레드 풀을 사용하게 되면 모델은 성능을 향상시키고 쓰레드를 관리하기 때문에 실행 지연을 방지할 수 있습니다.




쓰레드 풀의 동작원리는 다음과 같습니다.


스레드 풀은 작업 처리에 사용되는 스레드를 제한된 개수만큼 정해놓고, 

사용자로부터 들어온 요청을 작업큐에 넣은 후 Thread에서 로직 처리 후 리턴을 합니다.






Java에서는 jdk1.5부터 java.util.concurrent 패키지 제공합니다. 관련 API 정보는 여기로 이동해주세요.


사용예제는 Limky님 블로그에 더 잘 나와있는거 같습니다.




보통의 예제는 다음처럼 사용하는 것 같습니다.



 
// API 예제 가져왔습니다.
class NetworkService implements Runnable {
   private final ServerSocket serverSocket;
   private final ExecutorService pool;

   public NetworkService(int port, int poolSize)
       throws IOException {
     serverSocket = new ServerSocket(port);
     pool = Executors.newFixedThreadPool(poolSize);
   }

   public void run() { // run the service
     try {
       for (;;) {
         pool.execute(new Handler(serverSocket.accept()));
       }
     } catch (IOException ex) {
       pool.shutdown();
     }
   }
 }

 class Handler implements Runnable {
   private final Socket socket;
   Handler(Socket socket) { this.socket = socket; }
   public void run() {
     // read and service request on socket
   }
 }






참고 : https://en.wikipedia.org/wiki/Thread_pool

http://limkydev.tistory.com/55

http://palpit.tistory.com/732

반응형

'BackEnd > Java' 카테고리의 다른 글

JAVA Singleton Pattert 싱글톤 패턴  (0) 2018.10.31
Apache Mina (아파치 미나)  (0) 2018.10.31
Java Socket 통신  (0) 2018.10.08
cmd에서 java 실행  (0) 2018.10.01
string, stringbuffer, stringbuilder 차이점  (0) 2018.09.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함