gpt4 book ai didi

java - 跟踪 ThreadPoolExecutor java 中生成的线程

转载 作者:行者123 更新时间:2023-11-30 10:48:36 28 4
gpt4 key购买 nike

我正在使用线程池生成 5 个线程。现在我想知道跟踪所有这些线程并捕获每个线程指标的最佳方法,例如

  • 每个线程花费了多少时间?
  • 每个线程使用多少内存?

我们是否有任何现成的实现可以为我们完成工作。任何建议都会有所帮助。

public static void main(String[] args) {

ThreadPoolExecutor executors = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);

System.out.println("at executors step");
List<String> getlist = getList();
for (Iterator<String> itr = getlist.iterator(); itr.hasNext();) {
String element = (String) itr.next();
String[] command = { "ssh", "hddev-c01-edge-02", "\"" + element + "\"" };
System.out.println("the command is as below ");
System.out.println(Arrays.toString(command));
System.out.println("inside the iterator");
ParallelExecutor pe = new ParallelExecutor(command);
executors.execute(pe);
}
executors.shutdown();
}

最佳答案

ThreadPoolExecutor 中有 2 个方法,您可以重写这些方法来执行此类内务处理,例如线程执行 Runnable 所花费的时间。扩展 ThreadPoolExecutor 并仅覆盖 2 个方法,如

protected void beforeExecute(Thread t, Runnable r) { }

protected void afterExecute(Runnable r, Throwable t) { }

希望这对您有所帮助。

关于java - 跟踪 ThreadPoolExecutor java 中生成的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35738151/

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