Java 线程池 ThreadPoolExecutor -02
原创
©著作权归作者所有:来自51CTO博客作者木子的昼夜的原创作品,请联系作者获取转载授权,否则将追究法律责任
四、使用 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);}}