1.线程池
package seday19c;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @author xingsir
* 线程池主要用途:
* 1:控制线程数量(防止CPU过度切换和过多的资源消耗)
* 2:重用线程
*/
public class ThreadPoolDemo {
public static void main(String[] args) {
// 创建一个可缓存线程池
//创建一个可重用固定个数的线程池,以共享的无界队列方式来运行这些线程,
ExecutorService threadPool=Executors.newFixedThreadPool(2);//固定2个数的线程池
//循环创建6个线程操作
for(int i=0;i<6;i++) {
Runnable runn=new Runnable() {
@Override
public void run() {
try {
//创建线程
Thread t= Thread.currentThread();
//打印线程名称
System.out.println(t.getName()+"正在执行任务。。。。");
//休眠5000毫秒
Thread.sleep(5000);
//打印
System.out.println(t.getName()+"执行任务完毕!");
} catch (Exception e) {
e.printStackTrace();
}
}
};
//线程池执行一个任务
threadPool.execute(runn);
System.out.println("将<"+i+">这个任务交给了线程池.");
}
//线程池停止
// threadPool.shutdownNow();
// System.out.println("线程池停止了!");
}
}