ThreadPoolExecutor 如何判断空闲线程

时间:2025-03-20 14:45:24
Worker
 public void run() {
            runWorker(this);
 }
        
while (task != null || (task = getTask()) != null) {
 Runnable r = timed ?
                    (keepAliveTime, ) :
                    ();
                if (r != null)
                    return r;
                    
                    

添加工作线程并启动后,工作线程不段的从队列获取任务,
当超时获取不到任务,超时标志设置为true, 下一次循环判断超时,返回null,
则跳出工作循环,执行 processWorkerExit(w, completedAbruptly);
打断空闲线程 interruptIdleWorkers ();