线程池
线程池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!"); } }