警告付きのJavaスレッドが終了しました。なぜスレッドが終了するのかわかりません。私はjstackでそれを見つけることができません。そして、ログコードが実行されていないようです。私のコードは以下の通りです:Javaスレッドが警告なしで終了する
jstackログに「作業スレッド終了割り込みステータス」と「作業スレッド」に関するログはありません。なにか提案を?
警告付きのJavaスレッドが終了しました。なぜスレッドが終了するのかわかりません。私はjstackでそれを見つけることができません。そして、ログコードが実行されていないようです。私のコードは以下の通りです:Javaスレッドが警告なしで終了する
jstackログに「作業スレッド終了割り込みステータス」と「作業スレッド」に関するログはありません。なにか提案を?
private class WorkThread extends Thread {
public WorkThread() {
super("work-thread");
setDaemon(false);
}
@Override
public void run() {
logger.error("start running thread work-tracker");
try {
while (!interrupted()) {
try {
// do something
} catch (Throwable e) {
logger.error("ignore all exception");
}
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
}
Thread.currentThread().interrupt();
}
} finally {
logger.error("work thread exit interrupted status: {}" +interrupted());
}
}
}
「中断されました」ということは確実に起こりますか?あなたのメインスレッドは実際に終了するのですか?それともハングアップするのですか?アプリケーションを強制終了しましたか? –
'e.printStackTrace'がそれを使用します。 –
'System.exit();'は 'finally'を実行せずにすべてを終了します。 –