四、使用 ThreadPoolExecutor 简单使用

 package com.test;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;public class Test {public static void main(String[] args) {// 可缓存线程池
		ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();for (int i = 0; i < 12; i++) {
			newCachedThreadPool.execute(new MyRunnablee(i));}
		newCachedThreadPool.shutdown();//固定长度线程池
		ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(5);for (int i = 0; i < 12; i++) {
			newFixedThreadPool.execute(new MyRunnablee(i));}
		newFixedThreadPool.shutdown();//可定时线程池
		ScheduledExecutorService newScheduledThreadPool = Executors.newScheduledThreadPool(5);for (int i = 0; i <10; i++) {//3秒后 开始执行第一个线程
			newScheduledThreadPool.schedule(new MyRunnablee(i), 3, TimeUnit.SECONDS);}
		newScheduledThreadPool.shutdown();//单线程
		ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor();for (int i = 0; i <10; i++) {
			newSingleThreadExecutor.execute(new MyRunnablee(i));} 
		newSingleThreadExecutor.shutdown();}}class MyRunnablee implements Runnable {int flag ;public MyRunnablee(int flag) {this.flag = flag;}public void run() {
		System.out.println(Thread.currentThread().getName() + ":执行run--"+flag);}}