AsynchronousChannelGroupImpl(AsynchronousChannelProvider provider, ThreadPool pool) { super(provider); this.pool = pool; if (pool.isFixedThreadPool()) { taskQueue = new ConcurrentLinkedQueue<Runnable>(); } else { taskQueue = null; // not used } // use default thread factory as thread should not be visible to // application (it doesn't execute completion handlers). this.timeoutExecutor = (ScheduledThreadPoolExecutor) Executors.newScheduledThreadPool(1, ThreadPool.defaultThreadFactory()); this.timeoutExecutor.setRemoveOnCancelPolicy(true); }
final boolean isFixedThreadPool() { return pool.isFixedThreadPool(); }