Thursday, 22 December 2016

Java Tutorial: Java Threads (What happens if we set thread as Daemon thread after thread started)


Click here to watch in Youtube :
https://www.youtube.com/watch?v=F2QDuwLw-_0&list=UUhwKlOVR041tngjerWxVccw

DisplayThread.java
/*
 * public final void setDaemon(boolean on)
 * 
 * Parameters:
 * ----------- 
 * 
 * on - if true, marks this thread as a
 * daemon thread
 */

public class DisplayThread extends Thread
{

    public void run()
    {
        /*
         * Tests if this thread is a daemon thread.
         */
        if (Thread.currentThread().isDaemon())
        {
            System.out.println("Daemon thread = "
                    + Thread.currentThread().getName());
        }
        else
        {
            System.out.println("user thread = "
                    + Thread.currentThread().getName());
        }
    }

    public static void main(String[] args)
    {
        DisplayThread t1 = new DisplayThread();
        t1.setName("Thread 1");
        DisplayThread t2 = new DisplayThread();
        t2.setName("Thread 2");
        DisplayThread t3 = new DisplayThread();
        t3.setName("Thread 3");

        t1.start();

        /*
         * If you want to make a user thread as Daemon, it
         * must not be started otherwise it will throw
         * IllegalThreadStateException.
         * 
         * below line will throw
         * IllegalThreadStateException, because t1 thread is
         * started already.
         */
        t1.setDaemon(true);
        t2.start();
        t3.start();
    }
}
Output
Exception in thread "main" java.lang.IllegalThreadStateException
    at java.lang.Thread.setDaemon(Thread.java:1352)
    at DisplayThread.main(DisplayThread.java:51)
user thread = Thread 1

Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/ThreadDemo_daemon_exp_app.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/ThreadDemo_daemon_exp_app

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/0fa116261fbf2fe2bc94946e6ef3f543aabbf896/BasicJava/ThreadDemo_daemon_exp_app/?at=master

See also:
  • All JavaEE Viedos Playlist
  • All JavaEE Viedos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • No comments:

    Post a Comment