Effective Java ‐ Item 80⚠️ - dnwls16071/Backend_Summary GitHub Wiki
아이템 80 - 스레드보다는 실행자, 태스크, 스트림을 애용하라.
ExecutorService exec = Executors.newSingleThreadExecutor();
- 자바 7이 되면서 Executor Framework는 Fork/Join 테스크를 지원하도록 확장되었다.
- Fork/Join 테스크는 Fork/Join 풀이라는 특별한 실행자 서비스가 실행해준다.
- Fork/Join 작업이란, 작업을 세부 작업으로 나눠(=Fork) 각 세부 작업의 결과를 취합(=Join)할 수 있게 되었다.
- ForkJoinPool은 이 뿐만 아니라, 쓰레드가 쉬지 않고 일할 수 있도록 작업을 빼앗을 수 있다.(=작업 훔치기 알고리즘)
- 쓰레드가 항상 바쁘게 일을 처리 할 수 있다보니, CPU 이용률은 올라가고 높은 처리량과 낮은 지연 시간을 얻는 효과가 있다.