Runnable과 Callable의 차이: https://www.notion.so/seolnavy/Runnable-Callable-dae409f85a054578a66dfc88f6f01573
컨커런트 API
- 컨커런트 API의 목적은 개발자가 손쉽게 태스크를 생성하고, 병렬처리를 수행하며, 그 생명주기를 관리할 수 있도록 고수준 API를 제공하는 것이다.
- 컨커런트 API는 자바 5에서 발표된 상당히 오래된 기술이지만,
자바 8의 스트림 API 등이 모두 컨커런트 API를 기반으로 하고 있기 때문에 병렬 프로그래밍을 하려면 재대로 이해해야 한다.
- 컨커런트 API에서 제공하는 컨커런트 컬렉션을 이용하면 병렬 처리 환경에서 데이터를 병렬로 안전하게 처리할 수 있다.
- 컨커런트 API가 자바 스레드 기술을 완전히 대체하는 것이 아님을 기억해야 한다.
자바 스레드는 그 나름대로 굉장히 중요하며, 저수준 병렬 프로그래밍을 구현하기 위해서 반드시 알아두어야 하는 기술이다.
또한 컨커런트 API의 많은 기능이
Runnable
과 Callable 인터페이스
를 파라미터로 받고 있다.
- 자바의 스트림 API는 병렬 처리를 위한 손쉬운 방법을 제공하며, 내부적으로는 포크/조인 프레임워크를 기반으로 한다.
들어가며
컨커런트 API 개요
Executors 클래스
포크/조인 프레임워크
Future와 CompletableFuture
스트림 병렬 처리