@Override public String toString() { return super.toString()+ ", min-threads="+getCorePoolSize()+ ", max-threads="+getMaximumPoolSize()+ ", max-queue-size="+getMaxQueuedTasksCount(); }
@Override protected void poisonAll() { int size = currentPoolSize; final Queue<Runnable> q = getQueue(); while (size-- > 0) { q.offer(poison); } }
public void stop() { shutdownNow(); }
onTaskQueued(task); } else { onTaskQueueOverflow(); (currentPoolSize < maxPoolSize && idleThreadsNumber < workerQueueSize + 1)) { startWorker(new SyncThreadWorker(isCore)); } else if (idleThreadsNumber == 0) { onMaxNumberOfThreadsReached(); } else { statelock.notify();
setPoolSizes(corePoolsize, maxPoolSize); this.keepAliveTime = TimeUnit.MILLISECONDS.convert(keepAliveTime, timeUnit); this.workQueue = workQueue;
protected final void setImpl(ThreadPoolConfig cfg) { if (cfg == null) { throw new IllegalArgumentException("config is null"); } cfg = cfg.copy(); final Queue<Runnable> queue = cfg.getQueue(); if ((queue == null || queue instanceof BlockingQueue) && (cfg.getCorePoolSize() < 0 || cfg.getCorePoolSize() == cfg.getMaxPoolSize())) { this.pool = cfg.getQueueLimit() < 0 ? new FixedThreadPool(cfg.getPoolName(), cfg.getMaxPoolSize(), (BlockingQueue<Runnable>) queue, cfg.getThreadFactory(), cfg.getMonitoringProbe()) : new QueueLimitedThreadPool( cfg.getPoolName(), cfg.getMaxPoolSize(), cfg.getQueueLimit(), cfg.getThreadFactory(), (BlockingQueue<Runnable>) queue, cfg.getMonitoringProbe()); } else { this.pool = new SyncThreadPool(cfg.getPoolName(), cfg.getCorePoolSize(), cfg.getMaxPoolSize(), cfg.getKeepAliveTime(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS, cfg.getThreadFactory(), queue, cfg.getQueueLimit(),cfg.getMonitoringProbe()); } this.config = cfg.updateFrom(pool); }