A program can be divided into a number of small processes. Each small process can be addressed as a single thread (a lightweight process).
Multithreaded programs contain two or more threads that can run concurrently. This means that a single program can perform two or more tasks simultaneously.
For example, one thread is writing content on a file at the same time another thread is performing spelling check.
In Java, the word thread means two different things.
Ã¢ÂÂ¢ An instance of Thread class.
Ã¢ÂÂ¢ or, A thread of execution.
An instance of Thread class is just an object, like any other object in java. But a thread of execution means an individual "lightweight" process that has its own call stack. In java each thread has its own call stack.
The main thread :
Even if you don't create any thread in your program, a thread called main thread is still created. Although the main thread is automatically created, you can control it by obtaining a reference to it by calling currentThread() method.
Two important things to know about main thread are,
Ã¢ÂÂ¢ It is the thread from which other threads will be produced.
Ã¢ÂÂ¢ main thread must be always the last thread to finish execution.
public static void main(String args)
System.out.println("Name of thread is "+t);
Name of thread is Thread[MainThread,5,main]
Life cycle of a Thread :
1. New :
A thread begins its life cycle in the new state. It remains in this state until the start() method is called on it.
2. Runable :
After invocation of start() method on new thread, the thread becomes runable.
3. Running :
A method is in running thread if the thread scheduler has selected it.
4. Waiting :
A thread is waiting for another thread to perform a task. In this stage the thread is still alive.
5. Terminated :
A thread enter the terminated state when it complete its task.