쓰레드풀 2

[java] 자바 쓰레드 풀 ThreadPoolExecutor 란 ?

쓰레드를 무한으로 늘리게 되면 어떤 문제가 발생하나? - 성능 저하 - 쓰레드도 하나의 자원이므로 계속적으로 소모되면 자원고갈로 인해 메모리풀로 인해 서버가 다운될 수 있다. - 서버 입장에서 가장 중요한 것은 서버가 다운되지 않고 안정적으로 운영되는 것이다. 서버를 어떻게 안정적으로 운영할까? 쓰레드를 미리 만들어 놓고 재사용하는 방식으로 사용한다 == 쓰레드 풀. 왜 쓰레드 풀을 사용할까? 서버가 모든 요청에 대해 Thread를 매번 생성하게되면 성능상 문제가 발생할 수 있다. ThreadPool을 적용해 일정 수의 작업을 동시 처리하도록 한다. ThreadPoolExecutor 자바에서는 ThreadPoolExecutor라는 클래스를 지원해주는데 다음과 같은 생성자들이 존재한다. //ThreadPo..

[java] Thread Pool 쓰레드 풀이란 ?

프로세스 중 병렬 작업처리가 많아지면 스레드 개수가 증가되고 그에따른 스레드생성과 스케줄링으로 인해 CPU가 바빠져 메모리 사용량이 늘어난다. 따라서 시스템성능이 저하되고, 갑작스러운 병렬작업의 폭증에 따른 스레드 폭증을 막으려면 스레드 풀 Thread Pool을 사용해야 한다. Thread Pool 스레드 풀 스레드 풀은 작업처리에 사용되는 스레드를 제한된 개수만큼 정해놓고 작업큐 (Queue)에 들어오는 작업들을 하나씩 스레드가 맡아 처리한다. 그렇게 하면 작업처리 요청이 폭증되어도 스레드의 전체개수가 늘어나지 않으므로(제한해서 하나씩 처리하기 때문) 시스템 성능이 급격히 저하되지 않는다. 자바는 스레드풀을 생성하고 사용할 수 있도록 java.util.concurrent.Executors 클래스와 j..