【问题标题】:Function duplicate call [closed]函数重复调用[关闭]
【发布时间】:2013-03-14 15:18:39
【问题描述】:

我遇到了一个奇怪的问题,我的 run() 方法运行了两次函数。可能的原因是什么? run() 是从另一个线程调用的。

run()
{
    while(...)
    {
        ...
    }
    function();
}

【问题讨论】:

  • 唯一的原因是它被调用了两次......所以你应该发布另一个线程的代码,而不是这个
  • 我认为使用多线程你应该期望事情运行不止一次。

标签: java multithreading


【解决方案1】:

在这些情况下,如果您打印出堆栈跟踪以找出谁是调用者,或者您是否可以使用调试器设置断点并检查调用树,这会有所帮助。

打印堆栈跟踪的最简单方法是:

for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
    System.out.println(ste);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多