The perfect place for easy learning...

Java Programming

×

Topics List


Java Thread Model





The java programming language allows us to create a program that contains one or more parts that can run simultaneously at the same time. This type of program is known as a multithreading program. Each part of this program is called a thread. Every thread defines a separate path of execution in java. A thread is explained in different ways, and a few of them are as specified below.

A thread is a light wieght process.

A thread may also be defined as follows.

A thread is a subpart of a process that can run individually.

In java, a thread goes through different states throughout its execution. These stages are called thread life cycle states or phases. A thread may in any of the states like new, ready or runnable, running, blocked or wait, and dead or terminated state. The life cycle of a thread in java is shown in the following figure.

Java thread model | Thread life cycle

Let's look at each phase indetailed.

New

When a thread object is created using new, then the thread is said to be in the New state. This state is also known as Born state.

Example
Thread t1 = new Thread();

Runnable / Ready

When a thread calls start( ) method, then the thread is said to be in the Runnable state. This state is also known as a Ready state.

Example
t1.start( );

Running

When a thread calls run( ) method, then the thread is said to be Running. The run( ) method of a thread called automatically by the start( ) method.

Blocked / Waiting

A thread in the Running state may move into the blocked state due to various reasons like sleep( ) method called, wait( ) method called, suspend( ) method called, and join( ) method called, etc.

When a thread is in the blocked or waiting state, it may move to Runnable state due to reasons like sleep time completed, waiting time completed, notify( ) or notifyAll( ) method called, resume( ) method called, etc.

Example
Thread.sleep(1000);
wait(1000);
wait();
suspened();
notify();
notifyAll();
resume();

Dead / Terminated

A thread in the Running state may move into the dead state due to either its execution completed or the stop( ) method called. The dead state is also known as the terminated state.