缓存型线程池(CachedThreadPool)
Executors.newCacheThreadPool():可缓存线程池,先查看线程池中有没有之前创建的线程,如果有则直接使用。否则就新创建一个新的线程加入线程池中,我们经常用此类线程池来执行一些业务处理时间很短的任务。
demo
class Task implements Runnable {
private String name;
public Task(String name) {
this.name = name;
}
@Override
public void run() {
//实际的业务处理
System.out.println(name + "开始执行"]...");
}
}
/**
// * @param args
*/
public static void main(String[] args) throws ExecutionException, InterruptedException {
//调用工厂类的静态方法,创建线程池对象
ExecutorService executorService = Executors.newCachedThreadPool();
//调用接口实现类对象es中的方法submit提交线程任务
executorService.submit(new Task("name"));
}
newCachedThreadPool是线程数量是没有大小限制的,当新的线程来了直接创建,同样会造成资源消耗殆尽。