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("线程池停止了!"); } }