How do I check if a thread is a daemon thread?

You can test if a thread is a daemon thread or a user thread by calling the isDaemon() method of the Thread class. If it return true then the thread is a daemon thread, otherwise it is a user thread.

package org.kodejava.example.lang;

public class CheckDaemon implements Runnable {
    public CheckDaemon() {
    }

    public void run() {
        System.out.println("Running [" +
                Thread.currentThread().getName() + "]");
    }

    public static void main(String[] args) {
        Thread t1 = new Thread(new CheckDaemon(), "FirstThread");
        Thread t2 = new Thread(new CheckDaemon(), "SecondThread");

        t1.setDaemon(true);
        t1.start();
        t2.start();

        if (t1.isDaemon()) {
            System.out.format("%s is a daemon thread.%n",
                    t1.getName());
        } else {
            System.out.format("%s is a user thread.%n",
                    t1.getName());
        }

        if (t2.isDaemon()) {
            System.out.format("%s is a daemon thread %n",
                    t2.getName());
        } else {
            System.out.format("%s is a user thread %n",
                    t2.getName());
        }
    }
}
Wayan Saryada

Wayan Saryada

A programmer, runner, recreational diver, currently living in the island of Bali, Indonesia. Mostly programming in Java, creating web based application with Spring Framework, JPA, etc. If you need help on Java programming you can hire me on Fiverr.
Wayan Saryada

Leave a Reply