0% found this document useful (0 votes)
30 views7 pages

Java Multithreading Overview and Examples

Multithreading allows concurrent execution of parts of a program using threads. Threads are lightweight processes within a process. There are two mechanisms for thread creation in Java: extending the Thread class and implementing the Runnable interface. A thread goes through various life cycle stages including new, runnable, waiting, timed waiting, and terminated. The advantages of multithreading include not blocking the user, performing multiple operations simultaneously to save time, and isolating threads so exceptions in one thread do not affect others.

Uploaded by

HARIPRIYA P
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views7 pages

Java Multithreading Overview and Examples

Multithreading allows concurrent execution of parts of a program using threads. Threads are lightweight processes within a process. There are two mechanisms for thread creation in Java: extending the Thread class and implementing the Runnable interface. A thread goes through various life cycle stages including new, runnable, waiting, timed waiting, and terminated. The advantages of multithreading include not blocking the user, performing multiple operations simultaneously to save time, and isolating threads so exceptions in one thread do not affect others.

Uploaded by

HARIPRIYA P
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

MULTITHREADING IN JAVA

SUBMITTED BY

SANJAY S

00000O192207
MULTITHREADING IN JAVA

Multithreading is a Java feature that allows concurrent execution of two or more parts of a
program for maximum utilization of CPU. Each part of such program is called a thread. So,
threads are light-weight processes within a process.

Threads can be created by using two mechanisms


1. Extending the Thread class
2. Implementing the Runnable Interface

 
Thread creation by extending the Thread class

We create a class that extends the [Link] class. This class overrides the run() method
available in the Thread class. A thread begins its life inside run() method. We create an object of
our new class and call start() method to start the execution of a thread. Start() invokes the run()
method on the Thread object.

Program
filter_none
edit
play_arrow
brightness_4

// Java code for thread creation by extending


// the Thread class
class MultithreadingDemo extends Thread
{
    public void run()
    {
        try
        {
            // Displaying the thread that is running
            [Link] ("Thread " +
                  [Link]().getId() +
                  " is running");
  
        }
        catch (Exception e)
        {
            // Throwing an exception
            [Link] ("Exception is caught");
        }
    }
}
  
// Main Class
public class Multithread
{
    public static void main(String[] args)
    {
        int n = 8; // Number of threads
        for (int i=0; i<8; i++)
        {
            MultithreadingDemo object = new MultithreadingDemo();
            [Link]();
        }
    }
}
Output

Thread 8 is running

Thread 9 is running

Thread 10 is running

Thread 11 is running

Thread 12 is running

Thread 13 is running

Thread 14 is running

Thread 15 is running

 
Thread creation by implementing the Runnable Interface
We create a new class which implements [Link] interface and override run()
method. Then we instantiate a Thread object and call start() method on this object.

Program
filter_none
edit
play_arrow
brightness_4

// Java code for thread creation by implementing


// the Runnable Interface
class MultithreadingDemo implements Runnable
{
    public void run()
    {
        try
        {
            // Displaying the thread that is running
            [Link] ("Thread " +
                                [Link]().getId() +
                                " is running");
  
        }
        catch (Exception e)
        {
            // Throwing an exception
            [Link] ("Exception is caught");
        }
    }
}
  
// Main Class
class Multithread
{
    public static void main(String[] args)
    {
        int n = 8; // Number of threads
        for (int i=0; i<n; i++)
        {
            Thread object = new Thread(new MultithreadingDemo());
            [Link]();
        }
    }
}
Output

Thread 8 is running

Thread 9 is running

Thread 10 is running

Thread 11 is running

Thread 12 is running

Thread 13 is running

Thread 14 is running

Thread 15 is running

LIFE CYCLE OF A THREAD

A thread goes through various stages in its life cycle. For example, a thread is born, started,
runs, and then dies. The following diagram shows the complete life cycle of a thread.
Following are the stages of the life cycle −

 New − A new thread begins its life cycle in the new state. It remains in this state until the
program starts the thread. It is also referred to as a born thread.

 Runnable − After a newly born thread is started, the thread becomes runnable. A thread
in this state is considered to be executing its task.

 Waiting − Sometimes, a thread transitions to the waiting state while the thread waits for
another thread to perform a task. A thread transitions back to the runnable state only
when another thread signals the waiting thread to continue executing.

 Timed Waiting − A runnable thread can enter the timed waiting state for a specified
interval of time. A thread in this state transitions back to the runnable state when that
time interval expires or when the event it is waiting for occurs.

 Terminated (Dead) − A runnable thread enters the terminated state when it completes
its task or otherwise terminates.

Advantages of Java Multithreading

 It doesn't block the user because threads are independent and you can perform
multiple operations at the same time.

 You can perform many operations together, so it saves time.

 Threads are independent, so it doesn't affect other threads if an exception occurs


in a single thread.

You might also like