Worker
public void run() {
runWorker(this);
}
while (task != null || (task = getTask()) != null) {
Runnable r = timed ?
workQueue.poll(keepAliveTime, TimeUnit.NANOSECONDS) :
workQueue.take();
if (r != null)
return r;
添加工作线程并启动后,工作线程不段的从队列获取任务,
当超时获取不到任务,超时标志设置为true, 下一次循环判断超时,返回null,
则跳出工作循环,执行 processWorkerExit(w, completedAbruptly);
打断空闲线程 interruptIdleWorkers t.interrupt();
public void run() {
runWorker(this);
}
while (task != null || (task = getTask()) != null) {
Runnable r = timed ?
workQueue.poll(keepAliveTime, TimeUnit.NANOSECONDS) :
workQueue.take();
if (r != null)
return r;
添加工作线程并启动后,工作线程不段的从队列获取任务,
当超时获取不到任务,超时标志设置为true, 下一次循环判断超时,返回null,
则跳出工作循环,执行 processWorkerExit(w, completedAbruptly);
打断空闲线程 interruptIdleWorkers t.interrupt();