/*
* 弹性线程
* 刚开始没有线程,来一个任务就启动一个线程
* 如果有空闲的线程就不开启新的线程直接去执行
* 最多启动线程数,看你的系统支持(大多几万个线程)
* 默认空闲的线程超过60秒就自动销毁
*/
//线程数最开始为0,最大为系统所允许,60秒空闲该线程就结束
newCachedThreadPool
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class CachedPool_valuel {
public static void main(String[] args) throws InterruptedException {
/*
* 弹性线程
* 刚开始没有线程,来一个任务就启动一个线程
* 如果有空闲的线程就不开启新的线程直接去执行
* 最多启动线程数,看你的系统支持(大多几万个线程)
* 默认空闲的线程超过60秒就自动销毁
*/
//线程数最开始为0,最大为系统所允许,60秒空闲该线程就结束
ExecutorService service=Executors.newCachedThreadPool();
System.out.println(service);
/*
* 开两个任务
*/
for(int i=0;i<2;i++){
service.execute(new Runnable() {
public void run() {
try {
TimeUnit.MILLISECONDS.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
}
});
}
System.out.println(service); //开始线程为0
TimeUnit.SECONDS.sleep(80); //80秒
System.out.println(service);
}
}