是否有理由喜欢这样做:
private static ExecutorService service = Executors.newScheduledThreadPool(10);
对此:
private static ExecutorService service = new ScheduledThreadPoolExecutor(10);
答案 0 :(得分:8)
没有特别的理由,没有。 Executors
静态方法是为了方便而编写的,用于覆盖大部分标准用例。
虽然不是你提到的情况,但使用其他一些静态方法会使你的代码变得更加简单和易读。例如:
threadPool = Executors.newFixedThreadPool(10);
对战:
threadPool = new ThreadPoolExecutor(10, 10, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
我能想到为什么使用Executors
方法可能更好的唯一可能原因是,如果在将来的JDK版本中,它们会更改某些基础ExecutorService
类的默认值,静态方法会然后由Sun / Oracle调整以更好地使用新的构造函数参数,您不必更改代码。