以下を含むメソッドを持つJavaコードに出くわしました。
static boolean waitForSeconds(long seconds) { 試す { Thread.sleep(秒 * 1000); } キャッチ (InterruptedException ex) { false を返します。 } true を返します。 }
これの目的は何でしょうか?戻り値は、計算を続行するかどうかを決定するために使用されます。スレッドが 1 秒間中断されたかどうかを確認するためだけに 1 秒間スリープしようとするのは奇妙に思えます。
このメソッドを呼び出すコードは、thread.isInterrupted() と同じことを達成しようとしていますか? それが何をしようとしているにせよ、より良い方法はありますか?
waitForSeconds の呼び出しは、ループ内ではなく、別のメソッドの先頭に表示されるため、このコードが割り込みのチェックに加えて何らかの目的で 1 秒間待機することを意図している場合、間違った方法でチェックインしているように見えます。場所。睡眠をループの近くに置いたほうがいいのではないでしょうか?
最後の質問については、代わりにここに返信してください。