1、用Executors 创建可缓存的线程newCachedThreadPool 代码如下
public class ExecutorsDemo {
public static void main(String[] args) throws Exception, ExecutionException {
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
for(int i=0;i<20;i++){
cachedThreadPool.execute(new MyRunable());
}
}
}
class MyRunable implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}
我们这里创建20个线程,来看一下运行结果如下
2、从以上的结果可以看出,线程并没创建出20个,而是复用了已经创建的线程去执行任务