Thread Termination and Demon Thread

 Thread Termination:

Why :

Because Thread are Consuming Resources : Like Memory, Kernel Recourses, cpu Cycle and cache memory

When:

1. if thread finished its work, so we need to clean up the thread's resources

2. if thread misbehaving 

3. By default application will not stope the thread as long as at least one thread is still running 


Therad.intrrupt():

1 if the thread is executing a method that throws an intrrupedException

2. if the thread's code is handling the interrupt signal explicitly 

3. If any one of the thread is in sleeping or waiting state (i.e. sleep() or wait() is invoked), calling the Thread.interrupt() method on the thread, breaks out the sleeping or waiting state throwing InterruptedException. If the thread is not in the sleeping or waiting state, calling the interrupt() method performs normal behavior and doesn't interrupt the thread but sets the interrupt flag to true

 




Daemon Thread:

Daemon threads are thread that do not prevent the application from exiting if the main thread terminates

Example 1: Background tasks, that should not block our application from termination
File Saving thread in a Text Editor application
like save our work in every seconds so that thread should be as Daemon Thread

Example 2: Code in a worker thread is not under our control, and we do not want it to block our application from terminating

worker thread that uses an external Library

Summary:

1. Learned how to stop thread gracefully by calling the thread.interrupt()
2. If the method does not respond to the interrupt signal by throwing the the interruptedException, we
need to check that signal and handle it ourselves
3. We also learn how to set up thread to not block our application from exiting



Comments

Popular posts from this blog

JunitTest

Log4j2 Setup