Android:线程池的空闲线程在做什么?
线程池的空闲线程在做什么??这个我们通过一个例子看看
抄网上一个例子
import java.util.ArrayList;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;public class HelloWorld { // 核心线程数量 private static int corePoolSize = 3; // 最大线程数量 private static int maxPoolSize = 5; // 线程存活时间:当线程数量超过corePoolSize时,10秒钟空闲即关闭线程 private static int keepAliveTime = 10000; // 缓冲队列 private static BlockingQueue<Runnable> workQueue = null; // 线程池 private static ThreadPoolExecutor threadPoolExecutor = null; static { workQueue = new LinkedBlockingQueue<Runnable>(5); threadPoolExecutor = new ThreadPoolExecutor(corePoolSize, maxPoolSize, keepAliveTime, TimeUnit.SECONDS, workQueue); } public static void main(String[]agrs) { try { for (int i = 0; i < 10; i++) { System.out.println("=========第" + i + "次"); threadPoolExecutor.execute(new MyTask()); System.out.println("线程池中正在执行的线程数量:" + threadPoolExecutor.getPoolSize()); System.out.println("线程池缓存的任务队列数量:" + threadPoolExecutor.getQueue().size()); } } finally { // threadPoolExecutor.shutdown(); } }}
点击执行,而后发现程序还没有退出,这是为何呢?由于线程池中的线程还没有退出罗。那他是在做什么呢?我们打出线程的trace看看。
做什么
可以看到他是在getTask方法wait了,静静地等待任务的到来。这种线程就是空闲线程啦。
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Android:线程池的空闲线程在做什么?
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Android:线程池的空闲线程在做什么?