Files
javaSE260715/s-day06/src/com/inmind/threadpool10/Demo13.java
T

32 lines
1.4 KiB
Java

package com.inmind.threadpool10;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/*
22.线程池的创建--方式二
Executors的静态方法:
1.static ExecutorService newFixedThreadPool(int nThreads) 创建一个固定线程的线程池
2.static ExecutorService newSingleThreadExecutor() 创建一个只有一个线程的线程池,如果该线程出现异常,那么线程池主动创建一个新的替代
3.static ExecutorService newCachedThreadPool() 创建出随任务增加而增加线程的线程池,如果一个线程执行任务之后空闲了60s,这个线程就会被回收
注意:在实际开发中,不推荐使用Executors来创建线程池,工具类创建线程的底层其实就是ThreadPoolExecutor构造方法,只不过参数不同。
咱们的线程池的参数,要根据不同的业务来动态调整(而不是写死)
*/
public class Demo13 {
public static void main(String[] args) {
ExecutorService threadpool = Executors.newFixedThreadPool(3);
//创建10个任务并执行
//创建任务交给线程池处理
Task task = new Task();
threadpool.execute(task);
threadpool.execute(task);
threadpool.execute(task);//3个核心线程都已经被占用,给4个任务队列,排队
threadpool.shutdown();
System.out.println("程序结束");
}
}