Я выполняю следующую часть кода, чтобы понять концепцию потоков демона и завершение потока. программа продолжает печатать даже после завершения основного метода. Я что-то здесь упускаю?
package threading; public class ThreadInterruption { public static void main(String[] args) { Thread t = new Thread(new RanThread()); t.start(); t.setDaemon(true); t.interrupt(); } } class RanThread implements Runnable{ @Override public void run() { int count=0; while(true) { System.out.println("Ha Ha Ha "+ count); count=count+1; } } }
Спасибо заранее.
Вы должны установить поток в качестве демона, прежде чем запускать его.
Если вы читаете документы API, в нем говорится: «Этот метод должен быть вызван до запуска потока».
Так что поменяйте местами строки start и setDaemon, и все будет хорошо.