ThreadPoolExecutor executor = new ThreadPoolExecutor(3, 8, 3, TimeUnit.SECONDS,new LinkedBlockingQueue<Runnable>());
这个线程池一共有5个参数:
第一个参数:线程池核心线程的个数
第二个参数:线程池中的最大线程数,超过最大线程会把其他线程任务放进第四个参数也就是队列里等待调度
第三个和第四个结合起来使用,第三个是线程空闲等待的时间 long 类型,第四个是时间的单位,TimeUnit里有各种时间单位。
当线程空闲后会等待这里设置的时间数,如果到达任然没有调用就进行销毁,销毁至核心线程的个数,(但是这里注意线程池刚创建的时候线程个数是0,只有调用了才会创建。)
第五个是队列,打开源码后可以看见有几种队列。
threadPool.execute(new Runnable() {
@Override
public void run() {
System.out.println("有线程调用执行");
}
});
这个执行线程调用的方法。