September 2019
Intermediate to advanced
816 pages
18h 47m
English
CountedCompleter is a type of ForkJoinTask added in JDK 8.
The job of CountedCompleter is to remember the pending task count (nothing less, nothing more). We can set the pending count via setPendingCount() or increment it with an explicit delta via addToPendingCount(int delta). Commonly, we call these methods right before forking (for example, if we fork twice, then we call addToPendingCount(2) or setPendingCount(2), depending on the case).
In the compute() method, we decrease the pending count via tryComplete() or propagateCompletion(). When the tryComplete() method is called, with a pending count of zero, or the unconditional complete() method is called, the onCompletion() method is called. The propagateCompletion() ...