スレッドの停止に関する多くの既存の回答を確認しました。以下に典型的なコードをコピーします。
public class HelloWorld {
public static void main(String[] args) throws Exception {
Thread thread = new Thread(new Runnable() {
public void run() {
try {
while (!Thread.interrupted()) {
Thread.sleep(5000);
System.out.println("Hello World!");
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
});
thread.start();
System.out.println("press any key to quit");
System.in.read();
thread.interrupt();
}
}
しかし、この解決策は while ループ コードで割り込みステータスを確認する必要があります。run メソッドで行っていることがシーケンシャルで単一パスの場合、割り込みステータスを 2 回確認する機会がありません。たとえば、停止したいすべてのディスクのものを検索しているスレッドで、多くの時間がかかります。
どうすればそれを止めることができますか?