Parallele Programmierung (3IB)
ForkJoinPool und “Work-Stealing”, ForkJoinTaskRecursiveAction (Filter) und RecursiveTask (Summieren)=> Grundlage: Hettel und Tran (2016, Kap. 13)


ForkJoinPool und “Work-Stealing” im ThreadpoolForkJoinPool (seit Java 7) implementiert ExecutorService:
ForkJoinPool.commonPool() (seit Java 8)Runtime.getRuntime().availableProcessors() (max. 32767)ForkJoinTask<E>: leichtgewichtiges Future<E> (soll nicht blockieren)
RecursiveAction: Kein Rückgabewert (nur Seiteneffekt, z.B. bei in-place/in situ Sortierung)
RecursiveTask<E>: Funktion mit Rückgabewert (wird z. B. vom “Über-Task” mit join() geholt und in Ergebnis eingebaut)
Java SE 1.7 API-Dok: java.util.concurrent.ForkJoinPool
pp.12.01-ForkJoinArrayFilterMAX überschreiben, die > MAX sind.
pp.12.02-ForkJoinArrayReduceARRAY_LEN Elemente)SLICE_LEN Elem.SLICE_LEN Elem.)SLICE_LEN, ARRAY_LEN