3

これを行うことを好む理由はありますか:

private static ExecutorService service = Executors.newScheduledThreadPool(10);

これについて:

private static ExecutorService service = new ScheduledThreadPoolExecutor(10);
4

1 に答える 1

8

特に理由はありません。静的メソッドは利便性のExecutorsためにあり、標準的なユース ケースの大部分をカバーするように記述されています。

あなたが言及した場合ではありませんが、他のいくつかの静的メソッドを使用すると、コードが非常に単純になり、読みやすくなります。例えば:

threadPool = Executors.newFixedThreadPool(10);

対:

threadPool = new ThreadPoolExecutor(10, 10, 0L, TimeUnit.MILLISECONDS,
      new LinkedBlockingQueue<Runnable>());

メソッドを使用したほうがよい理由として考えられる唯一の理由Executorsは、将来の JDK バージョンで、基礎となるクラスの一部のデフォルトが変更されExecutorService、静的メソッドが Sun/Oracle によって調整されて、新しいコンストラクター引数と、コードを変更する必要はありません。

于 2012-08-14T18:30:09.133 に答える