摘要:
线程池里面的submit 先来说下这个函数submit() 如果有个需求,实现下载 每个线程都会http请求 进行下载操作 run方法的缺点之一就是 没有返回值!! 多线程下载,实现下载时候 会有下载进度。 主线程如何知道子线程执行完毕? run() 里面的业务实现完毕后 可以用notify wai 阅读全文
摘要:
CPU密集 CPU密集的意思是该任务需要大量的运算,而没有阻塞,CPU一直全速运行。 CPU密集任务只有在真正的多核CPU上才可能得到加速(通过多线程),而在单核CPU上,无论你开几个模拟的多线程,该任务都不可能得到加速,因为CPU总的运算能力就那些。 IO密集 IO密集型,即该任务需要大量的IO, 阅读全文
摘要:
如果当前线程池中的线程数目小于corePoolSize,则每来一个任务,就会创建一个线程去执行这个任务; 如果当前线程池中的线程数目>=corePoolSize,则每来一个任务,会尝试将其添加到任务缓存队列当中,若添加成功,则该任务会等待空闲线程将其取出去执行;若添加失败(一般来说是任务缓存队列已满 阅读全文
摘要:
前面的我那几个源码截图,大家可以自己点进去看看,共同点都是封装了 ThreadPoolExcutor这构造函数 无非就是传递的参数不一样~~ 比如 SingleThreadExecutor 就是这个构造函数: 下面我就介绍些这个构造函数: 提交一个任务到线程池中,线程池的处理流程如下: 1、判断线程 阅读全文