gpt4 book ai didi

java线程15分钟后不运行

转载 作者:行者123 更新时间:2023-12-01 23:41:12 25 4
gpt4 key购买 nike

有谁知道为什么线程没有立即启动?也就是说,10 分钟,20 .. 线程未启动 ...logger 是 java Logger 的简单装饰器...

这里是代码开始:

....
log.info("client streams prepared");
messagelistener = new Thread(new Listener(input, this));
messagelistener.start();
log.info("Connection prepared");
....

并启动监听器

public class Listener implements Runnable {

private final MyLogger logger = MyLogger.getLogger();
private final ObjectInputStream input;
private final Connection connection;

public Listener(ObjectInputStream input, Connection callback) {
connection = callback;
this.input = input;
logger.info("Listener created");
}

@Override
public void run() {
logger.info("listener thread in connection with "+ connection.getUser().getDisplayName() + " is started");
//.....samecode
logger.info("listener thread in connection with "
+ connection.getUser().getDisplayName() + " is stopped");
}
}

日志:

2013-07-29 22:36:58 MyLogger info INFO: client streams prepared  
2013-07-29 22:36:58 MyLogger info INFO: Listener created
2013-07-29 22:36:58 MyLogger info INFO: Connection prepared

在打印中看到启动前和启动后的信息,但不是方法运行的第一行,而且距离启动已经超过10分钟了,系统还没有加载,我不明白为什么它不起作用?有人能够向我解释我做错了什么吗?

最佳答案

... and it's been more than 10 minutes from launch, the system is not loaded, I do not understand why it does not work? someone is able to explain to me what I'm doing wrong?

我怀疑 run() 方法抛出了某种异常——可能是 NPE。

logger.info("listener thread in connection with "+
connection.getUser().getDisplayName() + " is started");

connection 是否有可能为 nullgetUser() 在此处返回 null?我敢打赌,如果您只记录一个简单的 "made it here" 方法,您就会在日志中看到它。您可能应该将 run() 行包含在 try {} catch (Exception e) { log exception } block 中并记录异常。我还尝试使用调试器并在第一个日志行中放置一个断点并单步执行它以查看发生了什么。看这个debugging tutorial for eclipse

您还可以在线程上设置一个 UncaughtExceptionHandler 来以这种方式记录它。请参阅:Using UncaughtExceptionHandler effectively

另一种可能性是您的 MyLogger 正在将 run() 日志条目记录到另一个文件中,但看起来主线程日志消息正在使用相同的记录器,因此不太可能。如果可能的话,那么在 run() 开头使用 System.out.println("in run()"); 将有助于排除这种情况。

关于java线程15分钟后不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17933965/

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