如何识别多个线程执行的代码段

时间:2010-06-23 14:12:19

标签: java multithreading

我正在使用net bean进行Java开发。我正在研究多线程应用程序,我想轻松识别由多个线程执行的代码段?有没有一种简单的方法可以做到这一点?

例如,如果ABC类的方法的某些字段由多个线程执行?

2 个答案:

答案 0 :(得分:2)

通常,不可能静态地进行,即通过检查代码。 (由于停止问题,问题是不可判定的。)

您唯一的选择是执行分析运行时,即记录使用方法执行的实际线程。你有几个选择。以下是我立即想到的两个。

  • 在有趣的方法上添加System.out.println(Thread.currentThread())
  • 使用例如AspectJ来做类似的事情。

答案 1 :(得分:2)

这只能在运行时确定。

您可以将此方法抛出到方法调用的开头,以确定调用Thread。

public static void reportThread(String methodName) {
    //Somehow LOG (println, logging framework)
    LOG(methodName + " was ran on thread: " + Thread.currentThread().getName());

}