之前有学习过这个框架的使用,稍微回顾一下:
- 初始化一个ForkJoinPool
- 定义task或action
- 使用pool来执行task或action
这里初始化ForkJoinPool 采用如下方法:
public final static ForkJoinPool mainPool = new ForkJoinPool();
首先分析一下初始化做了些什么。
public ForkJoinPool() {
this(Runtime.getRuntime().availableProcessors(),
defaultForkJoinWorkerThreadFactory, null, false);
}
这里调用了另外一个constructor.其中defaultForkJoinWorkerThreadFactory 这个是什么呢?
public static final ForkJoinWorkerThreadFactory
defaultForkJoinWorkerThreadFactory;
static class DefaultForkJoinWorkerThreadFactory
implements ForkJoinWorkerThreadFactory {
public ForkJoinWorkerThread newThread(ForkJoinPool pool) {
return new ForkJoinWorkerThread(pool);
}
}
public static interface ForkJoin