JAVA-----线程池

仅提供学习,侵权必删,如有错误,敬请告知

一、ThreadPoolExecutor

package jihe;

import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class MyThreadPool {
	public static void main(String[] args) {
		ThreadPoolExecutor executor = new ThreadPoolExecutor(
				5,  	//初始线程数
				15, 	//最大线程数
				60, 	//时间数
				TimeUnit.SECONDS,//时间单位
				new LinkedBlockingQueue<Runnable>(60),			//阻塞数量
				Executors.defaultThreadFactory(),  				//创建线程工厂
				new ThreadPoolExecutor.CallerRunsPolicy()		//拒绝策略
				);
		try {
			for (int i = 0; i < 15; i++) {
				executor.execute(()->{
					System.out.println(Thread.currentThread().getName()+"处理过!");
				});
			}
		} finally {
			// TODO: handle finally clause
			executor.shutdown();
		}
	}
}

二、newFixedThreadPool

ExecutorService executorService = Executors.newFixedThreadPool(50);   //指定线程池线程数量

三、newSingleThreadExecutor

ExecutorService executorService = Executors.newSingleThreadExecutor();  //线程池一个线程数

四、newCachedThreadPool

ExecutorService executorService = Executors.newCachedThreadPool();   //线程池自动分配线程
发布了9 篇原创文章 · 获赞 2 · 访问量 131

猜你喜欢

转载自blog.csdn.net/fenghuaqingjun/article/details/104450408