Java Thread start() Method



Description

The Java Thread start() method causes this thread to begin execution, the Java Virtual Machine calls the run method of this thread.The result is that two threads are running concurrently: the current thread (which returns from the call to the start method) and the other thread (which executes its run method).

Declaration

Following is the declaration for java.lang.Thread.start() method

public void start()

Parameters

NA

Return Value

This method does not return any value.

Exception

IllegalThreadStateException − if the thread was already started.

Example: Starting a Thread implementing Runnable Interface

The following example shows the usage of Java Thread start() method. In this program, we've created a thread class ThreadDemo by implementing Runnable interface. In constructor, a new thread is created using new Thread. Using start(), the thread is started which in turn calls the run() method when thread is scheduled to run.

package com.tutorialspoint;

public class ThreadDemo implements Runnable {

   Thread t;
   ThreadDemo() {
    
      // thread created
      t = new Thread(this, "Admin Thread");
     
      // prints thread created
      System.out.println("thread  = " + t);
      
      // this will call run() function
      System.out.println("Calling run() function... ");
      t.start();
   }

   public void run() {
      System.out.println("Inside run() function");
   }

   public static void main(String args[]) {
      new ThreadDemo();
   }
} 

Output

Let us compile and run the above program, this will produce the following result −

thread = Thread[Admin Thread,5,main]
Calling run() function...
Inside run() function

Example: Starting a Thread extending Thread Class

The following example shows the usage of Java Thread start() method. In this program, we've created a thread class ThreadDemo by extending Thread class. In constructor, a new thread is created using new Thread. Using start(), the thread is started which in turn calls the run() method when thread is scheduled to run.

package com.tutorialspoint;

public class ThreadDemo extends Thread {

   Thread t;
   ThreadDemo() {
    
      // thread created
      t = new Thread(this, "Admin Thread");
     
      // prints thread created
      System.out.println("thread  = " + t);
      
      // this will call run() function
      System.out.println("Calling run() function... ");
      t.start();
   }

   public void run() {
      System.out.println("Inside run() function");
   }

   public static void main(String args[]) {
      new ThreadDemo();
   }
} 

Output

Let us compile and run the above program, this will produce the following result −

thread = Thread[Admin Thread,5,main]
Calling run() function...
Inside run() function
java_lang_thread.htm
Advertisements