Java 线程池 ThreadPoolExecutor -02

四、使用 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);
	}
}




发布了431 篇原创文章 · 获赞 91 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/qq_36291682/article/details/89892078