1.一个线程实例加入CachedThreadPool时,如果该线程实例不存在CachedThreadPool,则创建一个,CachedThreadPool中线程实例默认超时时间为60s,超过这个时间,线程实例停止并被移出CachedThreadPool,适用于生存期短、异步的线程任务。
2.FixedThreadPool中最多只有固定数目线程存在,一个线程实例请求加入FixedThreadPool时,如果该实例不存在,且没有达到线程池数目上线,则会创建一个实例,否则,会先加入等待序列,当FixedThreadPool中有一个线程停止并移出线程池后,线程实例才能加入线程池,FixedThreadPool没有超时机制,适用于稳定且并发线程任务
3.public static void main(String[] args) {
int pool_size = 10;ExecutorService executorService = Executors.newCachedThreadPool();
int cpuNums = Runtime.getRuntime().availableProcessors();
ExecutorService executorService1 = Executors.newFixedThreadPool(cpuNums * pool_size);
int i = 0;
while (true) {
System.out.println(++i);
executorService1.execute(new Handler());//将实例加入线程池
}
}
public static class Handler implements Runnable {
public void run() {
System.out.println("----");
}
}