importjava.util.concurrent.LinkedBlockingQueue;importjava.util.concurrent.ThreadPoolExecutor;importjava.util.concurrent.TimeUnit;publicclassThreadPoolMonitor{publicstaticvoidmain(String[]args){intcorePoolSize=2;intmaximumPoolSize=4;longkeepAliveTime=10;ThreadPoolExecutorexecutor=newThreadPoolExecutor(corePoolSiz...
private static void printThreadPoolStatus(ThreadPoolExecutor executor) { System.out.println("--- ThreadPool Status ---"); System.out.println("Pool Size: " + executor.getPoolSize()); System.out.println("Active Threads: " + executor.getActiveCount()); System.out.println("Number of Tasks Co...
private static void threadPoolStatus(ThreadPoolExecutor executor, String name) { BlockingQueue<Runnable> queue = executor.getQueue(); System.out.println(Thread.currentThread().getName() + "-" + name + "-:" + "核心线程数:" + executor.getCorePoolSize() + " 活动线程数:" + executor.getAc...
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadPoolStatusExample { public static void main(String[] args) { ExecutorService executorService = Executors.newFixedThreadPool(5); // 提交一些任务给线程池 for (int i = 0; i < 10; i++) { execut...
System.out.println("ThreadPool status: PoolSize = "+ poolSize +", ActiveCount = "+ activeCount +", QueueSize = "+ queueSize); },10,10, TimeUnit.SECONDS); }publicstaticvoidadjustThreadPool(ScheduledExecutorService threadPool){// 根据任务队列长度动态调整线程池参数threadPool.scheduleAtFixedRate((...
除此之外,还可以利用 ThreadPoolExecutor 的相关 API 做一个简陋的监控。ThreadPoolExecutor提供了获取线程池当前的线程数和活跃线程数、已经执行完成的任务数、正在排队中的任务数等等。 下面是一个简单的 Demo。printThreadPoolStatus()会每隔一秒打印出线程池的线程数、活跃线程数、完成的任务数、以及队列中的任务数...
java.util.concurrent.BlockingQueue<Runnable> workQueue){super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue); }// 获取当前线程池状态信息publicStringgetStatusInfo(){StringBuildersb=newStringBuilder(); sb.append("ThreadPool Status: ").append(isShutdown() ?"SHUTDOWN":"RUNNING").appen...
下面是一个简单的 Demo。printThreadPoolStatus()会每隔一秒打印出线程池的线程数、活跃线程数、完成的任务数、以及队列中的任务数。 /*** 打印线程池的状态** @param threadPool 线程池对象*/publicstaticvoidprintThreadPoolStatus(ThreadPoolExecutorthreadPool){ScheduledExecutorServicescheduledExecutorService=newSchedule...
isShutdown()); Thread.sleep(1000 * 5); System.out.println("Thread pool status: isTerminated" + threadPoolExecutor.isTerminated()); } } (2)使用 Executors 创建线程池 package com.page.concurrent.pool; import java.util.concurrent.*; public class Game { public static void main(String[]...
final void runWorker(Worker w) {Thread wt = Thread.currentThread();Runnable task = w.firstTask;w.firstTask =null;w.unlock(); // status设置为0,允许中断boolean completedAbruptly =true;try {while (task !=null|| (task = getTask()) !=null) {w.lock();// 如果线程池当前状态至少是stop,...