Thread Thread Is a subprocess that follows a separate execution path, different stack frame and executes independently but they share the same process resources. Multithreading is the process of executing one or more threads simultaneously that helps in executing multiple tasks at the same time. Advantages less memory fast efficient Supports multitasking Exception in one thread does not affect the other Thread lifecycle New Runnable Running Non-Runnable Terminated Ways to create a thread? Extending Thread class Implementing Runnable class Thread.start() vs Thread.run() Class java.lang.Thread .start() Creates a new thread and the run() method is executed on the newly created thread. Can’t be invoked more than one time otherwise throws java.lang.IllegalStateException. Interface java.lang.Runnable.run(), No new thread is created and the run() method is executed on the calling thread itself. Multiple invocation is possible Constructors of a th...