Skip to content

Latest commit

 

History

History
33 lines (24 loc) · 1.33 KB

포크조인프레임워크.md

File metadata and controls

33 lines (24 loc) · 1.33 KB

포크/조인 프레임워크

포크 조인 프레임워크는 병렬화할 수 있는 작업을 재귀적으로 작은 작업으로 분할한 다음에 서브태스크 각각의 결과를 합쳐서 전체 결과를 만들도록 설계되었다. 포크/조인 프레임워크에서는 서브태스크를 스레드 풀(ForkJoinPool)의 작업자 스레드에 분산 할당하는 ExecutorService 인터페이스를 구현한다.

RecursiveTask 활용

스레드 풀을 이용하려면 RecursiveTask<R> 의 서브클래스를 만들어야 한다. RecursiveTask를 정의하려면 추상 메서드 compute를 구현해야 한다.

protected abstract R compute();
  • compute 메서드 의사코드
if(태스크가 충분히 작거나  이상 분할   없으면) {
  순차적으로 태스크 계산
} else {
  태스크를  서브태스크로 분할
  태스크가 다시 서브태스크로 분할되도록  메서드를 재귀적으로 호출함
  모든 서브태스크의 연산이 완료될 ㄸ까지 기다림
   서브태스크의 결과를 합침
}
  1. 각각이 서브태스크의 크기가 충분히 작아질 때까지 태스크를 재귀적으로 포크함
  2. 모든 서브태스크를 병렬로 수행
  3. 부분 결과를 조합

스레드 풀과 포크조인 풀

https://okky.kr/article/345720