Android:线程池的空闲线程在做什么?
来源:九九叔     阅读:955
泉州小白网络科技
发布于 2018-07-25 23:19
查看主页

线程池的空闲线程在做什么??这个我们通过一个例子看看

抄网上一个例子

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了,静静地等待任务的到来。这种线程就是空闲线程啦。

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 软件环境
相关推荐
Python 学习之 Numpy
Matlab安装步骤
32个Python爬虫项目让你一次吃到撑
Redis的OBJECT命令(译文)
JavaScript的值传递和引用传递
首页
搜索
订单
购物车
我的