我使用线程池生成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();
}
答案 0 :(得分:1)
ThreadPoolExecutor中有两种方法,您可以覆盖这些方法来执行此类内容保存,例如线程执行Runnable所花费的时间。 扩展ThreadPoolExecutor并仅覆盖两个方法,如
protected void beforeExecute(Thread t, Runnable r) { }
protected void afterExecute(Runnable r, Throwable t) { }
希望这会有所帮助。