问题:如何实例化ForkJoinPool

问题

如何实例化ForkJoinPool

答案

在Java8,获取ForkJoinPool实例最方便的方法是使用这个类的静态方法commonPool(),这个方法将会提供一个ForkJoinPool的引用,是ForkJoinTask默认的线程池.

使用预定义的线程池可以减少资源的消耗,因为它阻止为每个任务单独创建一个线程池.

ForkJoinPool commonPool = ForkJoinPool.commonPool();

在Java7,可以自己实例化一个ForkJoinPool,并将引用分配给一个工具类的静态成员变量.

public class ForkJoinPoolUtil {

    public static ForkJoinPool forkJoinPool = new ForkJoinPool(2);
}

访问静态成员变量:

ForkJoinPool forkJoinPool = ForkJoinPoolUtil.forkJoinPool;

使用ForkJoinPool构造器,可以创建一个自定义的线程池,我们可以指定线程池的并行等级,线程工厂,异常处理器。在上面的例子中,线程池的并行等级为2,这意味着线程池将使用2个处理器内核.

你可能感兴趣的:(问题:如何实例化ForkJoinPool)