gpt4 book ai didi

Java 线程池执行器监控

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:09 26 4
gpt4 key购买 nike

Java SE 6 文档中的 ThreadPoolExecutor 类具有以下 method :

public int getActiveCount()

Returns the approximate number of threads that are actively executing tasks.

这里的approximateactively execution是什么意思?

是否有任何保证,如果在调用 getActiveCount()

之前、期间和之后
  1. N 个线程已从池中分配给任务执行,并且
  2. N 个线程都不可用于进一步的任务分配,

getActiveCount() 返回的整数正好是 N

如果getActiveCount()不提供这种保证,有没有其他方法可以更精确地获取这些信息?

之前的 SO 问题:

我看过Thread Pool Executor Monitoring RequirementHow to tell if there is an available thread in a thread pool in java ,但他们不回答我的问题。

最佳答案

之所以近似是因为数字在计算过程中可能会发生变化;你是多线程的。在计算完成之前,不同数量的线程现在可以处于 Activity 状态(选中时处于非 Activity 状态的线程现在处于 Activity 状态)。

当您说“特定时间实例”时……实际上并没有任何意义。计算不是即时的。鉴于游泳池的流体/动态特性,您得到的数字是最佳答案。

如果偶然计算开始和完成时池中的线程都没有改变状态,那么是的,这个数字是“准确的”,但只有在池中的线​​程改变状态时才会发生,这意味着它可能只有 1 毫秒(或更短)是“精确的”。

关于Java 线程池执行器监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10510300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com