Perform Single And Multiple Task Using Multiple-Thread In Java

Introduction

This article explains how to perform a single and multiple tasks using multiple threads.

Performing single task

If we need to perform a single task using multiple threads then we need to use only one/single run() method.

Example

In this example, we simply extend the thread and perform a single task using multiple threads.

class MultithreadEx1 extends Thread

  {

    public void run()

      {

        System.out.println("Start task one");

      }

    public static void main(String args[])

      {

        MultithreadEx1 th1=new MultithreadEx1();

        MultithreadEx1 th2=new MultithreadEx1();

        MultithreadEx1 th3=new MultithreadEx1();

        th1.start();

        th2.start();

        th3.start();

      }

  }

Output

Fig-1.jpg

Example 2

In this example we use the Runnale interface instead of extending threads.

class MultithreadEx2 implements Runnable

  {

    public void run()

      {

        System.out.println("Start task one");

      }

    public static void main(String args[])

      {

        Thread th1=new Thread(new MultithreadEx2());

        Thread th2=new Thread(new MultithreadEx2());

        Thread th3=new Thread(new MultithreadEx2());

        th1.start();

        th2.start();

        th3.start();

      }

  }

Output

Fig-2.jpg

Performing multiple tasks

To perform multiple tasks by multiple threads, we need to use multiple run() methods.

Example 1

In this example; we need to extend the thread to perform multiple tasks.

class MultithreadEx3 extends Thread

  {

    public void run()

      {

        System.out.println("Start task one");

      }

  }

class MultithreadEx4 extends Thread

  {

    public void run()

      {

        System.out.println("Start task two");

      }

  }

class Run

  {

    public static void main(String args[])

      {

        MultithreadEx3 th1=new MultithreadEx3();

        MultithreadEx4 th2=new MultithreadEx4();

        th1.start();

        th2.start();

      }

  }

Output

fig-3.jpg

Example 2

In this example we use an anonymous class that extends the Thread class.

class Check

  {

    public static void main(String[] args)

      {

        Thread th1=new Thread()

          {

            public void run()

              {

                System.out.println("Start task one");

              }

          };

        Thread th2=new Thread()

          {

            public void run()

              {

                System.out.println("Start task two");

              }

          };

        th1.start();

        th2.start();

      }

  }

Output

Fig-4.jpg

Example 3

In this example we use an anonymous class that implements the Runnable interface.

class Check1

  {

    public static void main(String[] args)

      {

        Runnable run1=new Runnable()

          {

            public void run()

              {

                System.out.println("Start task one");

              }

          };

        Runnable run2=new Runnable()

          {

            public void run()

              {

                System.out.println("Start task two");

              }

          };

        Thread th1=new Thread(run1);

        Thread th2=new Thread(run2);

        th1.start();

        th2.start();

      }

  }

Output

fig-5.jpg