gpt4 book ai didi

java - 如何使用 ExecutorService 跟踪任务执行统计信息?

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

我正在使用 ExecutorService 启动任务,分派(dispatch)需要按任务特定标准分组的任务:

Task[type=a]
Task[type=b]
Task[type=a]
...

我想定期输出每个任务花费的平均时间长度(按 type 分组)以及平均/中位数和标准差等统计信息。

当然,这需要非常快,理想情况下不应导致各个线程在报告统计信息时同步。执行此操作的良好架构是什么?

最佳答案

ThreadPoolExecutor提供 beforeExecuteafterExecute您可以覆盖的方法。您可以使用它们在单个(ExecutorService 的成员变量)中记录您的统计信息 ConcurrentHashMap键入任务的一些唯一标识符,并存储类型、开始时间和结束时间。

当您准备好查看它们时,从 ConcurrentHashMap 计算统计数据。

关于java - 如何使用 ExecutorService 跟踪任务执行统计信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/923033/

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