线程池demo
1/ 假设MyRunnable 实现了runnable 接口哦
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.*;
class ThreadPoolExecutorDemo{
private static final int core_pool_size = 5; //应该都是CORE_POOL_size
private static final int max_pool_size = 10;
private static final int queue_capacity = 100;
private static final long keep_alive_time = 1L;
public static void main(String[] args) {
//1.建池
ThreadPoolExecutor executor = new ThreadPoolExecutor(core_pool_size,max_pool_size,
keep_alive_time, TimeUnit.SECONDS,new ArrayBlockingQueue<>(queue_capacity),
new ThreadPoolExecutor.CallerRunsPolicy());
//2.设置runnable的任务
Runnable worker = new MyRunnable();
//3.提交任务
executor.execute(worker);
//4.种植线程池
executor.shutdown();
//5.判断线程池 所有线程关闭了
while(!executor.isTerminated()){}
System.out.println("Finish All Threads!");
}
}
京公网安备 11010502036488号