본문 바로가기

Thread2

[java] Thread 작업 완료 확인 - Future Future "Blocking 방식의 작업 완료 통보" Future 객체는 작업이 완료될 때까지 기다렸다가 최종 결과를 얻는 데 사용한다. 그래서 Future를 지연 완료(pending completion) 객체라고 한다. ExecutorService의 submit() 메소드는 파라미터로 받은 Runnable 또는 Callable 작업을 Thread Pool의 작업 큐에 저장하고 즉시 Future 객체를 리턴한다. 이후 Future의 get() 메소드를 호출하면 Thread가 그 작업을 완료할 때까지 기다렸다가(Blocking!) 작업을 완료하면 처리 결과를 리턴한다. Runnable Runnable task = new Runnable() { @override public void run() { // ... 2019. 9. 1.
[java] RejectExecutionHandler reject policy - 작업 큐(workQueue)가 full인 상태에서의 처리 정책 Thread Pool ? 병렬 작업 처리가 많아지면 Thread의 개수가 증가하고 그에 따른 Thread 생성과 스케줄링으로 인해 CPU가 바빠져서 메모리 사용량이 늘어난다. 따라서 애플리케이션의 성능이 저하된다. 이런 상황을 막기 위해 Thread Pool을 사용한다. Thread Pool은 작업 처리에 사용되는 Thread를 제한된 개수만큼 정해놓고 작업 큐에 들어오는 작업을 하나씩 Thread가 맡아서 처리한다. java.util.concurrent 패키지에 ExecutorService 인터페이스와 ExecutorService 구현 객체를 만들 수 있는 Executors 클래스를 제공해준다. ExecutorService 구현 객체는 newCachedThreadPool()나 newFixedThread.. 2019. 8. 30.