问题
如何实例化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个处理器内核.
网友评论