Did you know that execution of a Java program will continue only when there is at least one user thread running? In cases in which there are no user threads, or there exists only Daemon threads in running state, the execution will stop.
//Set this to true to make all the threads as Daemon or false to make this a non Daemon thread.user2DaemonThread.setDaemon(false);//Change the values and see the difference in execution. Its just a matter of time that the runtime infers this.
Code snippet:
public class DaemonThread implements Runnable{ public static void main(String args[]) { Thread user2DaemonThread = new Thread(new DaemonThread()); user2DaemonThread.setDaemon(true); user2DaemonThread.start(); } public void run() { for (int i=1; i { System.out.println("Current count: " + i + ": isDaemon(): " + Thread.currentThread().isDaemon()); try{ Thread.currentThread().sleep(1000); }catch(InterruptedException ie) { System.out.println("InterruptedException: "+ ie); } } }}