;
④ newSingleThreadExecutor : 创建 单线程 线程池 , 该线程池中 只有一个线程 , 所有的任务按照指定的优先级顺序执行 , 如 FIFO 先入先出 ( 先到的先执行 ,...;
非核心线程 : 闲置超过一定时间 , 就会被回收 ;
线程池任务调度 : 线程池中维护了一个任务队列 , 线程池启动后 , 会不停的从任务队列中取出任务 , 如果有新任务 , 执行如下操作...command) 方法 , 执行线程池任务 ;
在 execute 方法中, 需要执行以下三个步骤 :
如果当前 运行线程数小于核心线程数 , 尝试 启动新线程执行该任务, 该任务是线程的第一个任务...如果 任务成功加入队列, 需要 双重检查 ( 进入该方法后, 线程池可能关闭 ), 在进入该方法后, 是否添加了一个线程, 或者线程池是否关闭....如果任务成功加入队列, 需要双重检查 ( 进入该方法后, 线程池可能关闭 ),
* 在进入该方法后, 是否添加了一个线程, 或者线程池是否关闭.