Executors
创建线程池的工厂类,有创建多种不同线程池的方法
Executors.newSingleThreadExecutor
这个方法创建一个单线程的线程池,单线程的线程池的好处是比直接创建的线程易于维护,并且功能更强
Executors.newCachedThreadPool
这是一个缓存线程池,没有核心线程,每个线程的失效时间为60秒,使用默认的工厂和默认的策略,创建方法如下
简单使用代码如下:
public class CachedPoolDemo {
public static void main(String[] args) throws InterruptedException {
ExecutorService service = Executors.newCachedThreadPool();
System.out.println("before:" + service);
for (int i = 0; i < 2; i++) {
service.execute(() -> {
try {
TimeUnit.MILLISECONDS.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
});
}
System.out.println("out:" + service);
TimeUnit.SECONDS.sleep(80);
//TimeUnit.SECONDS.sleep(20); 打开注释看执行结果有何不同
System.out.println("last:" + service);
}
}
打印结果:
before:java.util.concurrent.ThreadPoolExecutor@7f31245a[Running,