package tieshan.controller; import java.util.concurrent.*; public class Test { // private static ExecutorService es = new ThreadPoolExecutor(50, 100, 0L, TimeUnit.MILLISECONDS, // new LinkedBlockingQueue<Runnable>(1000)); private static ExecutorService es = Executors.newFixedThreadPool(10); public static void main(String[] args) throws Exception { for (int i = 0; i < 100; i++) { es.execute(() -> { System.out.print(1); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } }); } ThreadPoolExecutor tpe = ((ThreadPoolExecutor) es); while (tpe.getCompletedTaskCount() <= 200) { System.out.println(); int queueSize = tpe.getQueue().size(); System.out.println("当前排队线程数:" + queueSize); int activeCount = tpe.getActiveCount(); System.out.println("当前活动线程数:" + activeCount); long completedTaskCount = tpe.getCompletedTaskCount(); System.out.println("执行完成线程数:" + completedTaskCount); long taskCount = tpe.getTaskCount(); System.out.println("总线程数:" + taskCount); Thread.sleep(5000); if(tpe.getActiveCount() == 0) { System.out.println("=======新的一批任务又来了========"); for (int i = 0; i < 50; i++) { es.execute(() -> { System.out.print(1); try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } }); } } } } }
线程池的一些测试
最新推荐文章于 2024-03-30 23:34:49 发布