これを行うことを好む理由はありますか:
private static ExecutorService service = Executors.newScheduledThreadPool(10);
これについて:
private static ExecutorService service = new ScheduledThreadPoolExecutor(10);
これを行うことを好む理由はありますか:
private static ExecutorService service = Executors.newScheduledThreadPool(10);
これについて:
private static ExecutorService service = new ScheduledThreadPoolExecutor(10);
特に理由はありません。静的メソッドは利便性のExecutors
ためにあり、標準的なユース ケースの大部分をカバーするように記述されています。
あなたが言及した場合ではありませんが、他のいくつかの静的メソッドを使用すると、コードが非常に単純になり、読みやすくなります。例えば:
threadPool = Executors.newFixedThreadPool(10);
対:
threadPool = new ThreadPoolExecutor(10, 10, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
メソッドを使用したほうがよい理由として考えられる唯一の理由Executors
は、将来の JDK バージョンで、基礎となるクラスの一部のデフォルトが変更されExecutorService
、静的メソッドが Sun/Oracle によって調整されて、新しいコンストラクター引数と、コードを変更する必要はありません。