线程池使用

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

}

  

原文地址:https://www.cnblogs.com/xingsir/p/12674135.html