Java 如何查找等待执行的可运行程序的数量
有没有办法知道在给定的时间点有多少可运行程序正在等待Java 如何查找等待执行的可运行程序的数量,java,concurrency,threadpool,Java,Concurrency,Threadpool,有没有办法知道在给定的时间点有多少可运行程序正在等待ExecutorService执行。例如,假设循环调用execute方法的速度快于runnable可以完成的速度,并且累积了多余的runnable,那么是否仍然可以获得累积的runnable的运行计数 ExecutorService es = Executors.newFixedThreadPool(50); while (test) { es.execute(new MyRunnable()); } 有没有办法知道在给定的时间点有
ExecutorService
执行。例如,假设循环调用execute方法的速度快于runnable可以完成的速度,并且累积了多余的runnable,那么是否仍然可以获得累积的runnable的运行计数
ExecutorService es = Executors.newFixedThreadPool(50);
while (test) {
es.execute(new MyRunnable());
}
有没有办法知道在给定的时间点有多少可运行程序正在等待ExecutorService执行
对。您应该实例化自己的调用,而不是使用Executors…
调用。下面是执行器返回的内容。newFixedThreadPool(50)
:
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(50, 50,
0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
也可从ThreadPoolExecutor
获得:
getActiveCount()
getCompletedTaskCount()
getCorePoolSize()
getLargestPoolSize()
getMaximumPoolSize()
getPoolSize()
getTaskCount()
BlockingQueue
和RejectedExecutionHandler
。请看我的回答:
有没有办法知道在给定的时间点有多少可运行程序正在等待ExecutorService执行
对。您应该实例化自己的调用,而不是使用Executors…
调用。下面是执行器返回的内容。newFixedThreadPool(50)
:
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(50, 50,
0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
也可从ThreadPoolExecutor
获得:
getActiveCount()
getCompletedTaskCount()
getCorePoolSize()
getLargestPoolSize()
getMaximumPoolSize()
getPoolSize()
getTaskCount()
如果要限制队列中作业的数量,以避免遥遥领先,则应使用有界的
BlockingQueue
和RejectedExecutionHandler
。在这里查看我的答案:您可以使用ThreadPoolExecutor
实现并调用toString()
方法
返回标识此池及其状态的字符串,包括运行状态指示以及估计的工作线程和任务计数
阅读更多
在这个实现中有更多的方法来获得不同类型的计数
您可以使用以下两种方法:
public long getTaskCount()
返回计划执行的任务的大致总数。由于任务和线程的状态在计算过程中可能会动态变化,因此返回的值只是一个近似值
public long getCompletedTaskCount()
返回已完成执行的任务的大致总数。由于任务和线程的状态在计算过程中可能会动态变化,因此返回的值只是一个近似值,但在连续调用中不会减少
干杯 您可以使用
ThreadPoolExecutor
实现并调用toString()
方法
返回标识此池及其状态的字符串,包括运行状态指示以及估计的工作线程和任务计数
阅读更多
在这个实现中有更多的方法来获得不同类型的计数
您可以使用以下两种方法:
public long getTaskCount()
返回计划执行的任务的大致总数。由于任务和线程的状态在计算过程中可能会动态变化,因此返回的值只是一个近似值
public long getCompletedTaskCount()
返回已完成执行的任务的大致总数。由于任务和线程的状态在计算过程中可能会动态变化,因此返回的值只是一个近似值,但在连续调用中不会减少
干杯 BlockingQueue和RejectedExecutionHandler。。精彩的BlockingQueue和RejectedExecutionHandler。。精彩的