gpt4 book ai didi

Java 线程停止工作并且没有异常或 Throwable 被抛出

转载 作者:行者123 更新时间:2023-11-30 06:28:03 25 4
gpt4 key购买 nike

我通常用大约 4 个线程运行我的程序,在程序运行后的 1 小时到 10 小时之间的任何时间,一些线程停止并且什么也不做,我的程序围绕着 Exception 和 Throwable block ,我也有一个 uncaughtException线程并且没有任何关于任何错误的信息被添加到我的日志文件中。如何找到导致线程停止的原因?

编辑

这是我的代码的基本结构

下面是设置uncaughtException block 的代码

                newThread.setName("Thread" + totalNumberOfThreads);
newThread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler()
{
@Override
public void uncaughtException(Thread t, Throwable e)
{
Main.logger.info("ERROR! An exception occurred in " + t.getName() + ". Cause: " + e.getMessage());
}
});
newThread.start();

这就是线程的基本结构

@Override
public void run()
{
while (true)
{
try
{
//a long section of code
}
catch (Exception e)
{
e.printStackTrace();
Main.logger.info(threadName + ": " + e);
}
catch (Throwable t)
{
Main.logger.info(threadName + ": " + "Throwable: " + t);
}
finally
{
//some code to close connections.. ect..
}
} // end while
}

最佳答案

How can I find what is causing the threads to stop?

你知道线程已经停止了吗?如前所述,它们可能会被阻止。您可以使用 jstack要查看它们是否处于 Activity 状态或进行更仔细的检查,请在启用远程调试的情况下启动程序,并在您觉得它们已停止时附加调试器。

关于Java 线程停止工作并且没有异常或 Throwable 被抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12983271/

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