Selected Reading

Java - Naming a Thread with Examples



Name a Thread while Implementing a Runnable Interface

If your class is intended to be executed as a thread and is implementing a Runnable interface. You will need to instantiate a Thread object using the following constructor −

Thread(Runnable threadObj, String threadName);

Where, threadObj is an instance of a class that implements the Runnable interface and threadName is the name given to the new thread.

Once a Thread object is created, you can start it by calling start() method, which executes a call to run( ) method. Following is a simple syntax of start() method −

void start();

Example

In this example, we're creating a class RunnableDemo by implementing Runnable interface. RunnableDemo class has run() method implementation. In main class TestThread, we've created the RunnableDemo objects and using those objects we've created two Thread objects. When Thread.start() method is called on each thread objects, threads start processing and program is executed.

package com.tutorialspoint;
class RunnableDemo implements Runnable {
   private String threadName;
   RunnableDemo( String name) {
      threadName = name;
      System.out.println("Thread: " + threadName + ", " + "State: New");
   }
   public void run() {
      System.out.println("Thread: " + threadName + ", " + "State: Running");
      for(int i = 4; i > 0; i--) {
         System.out.println("Thread: " + threadName + ", " + i);         
      }
      System.out.println("Thread: " + threadName + ", " + "State: Dead");
   }
}
public class TestThread {
   public static void main(String args[]) {
	  RunnableDemo runnableDemo1 = new RunnableDemo( "Thread-1");
	  RunnableDemo runnableDemo2 = new RunnableDemo( "Thread-2");
	  
	  Thread thread1 = new Thread(runnableDemo1);
	  Thread thread2 = new Thread(runnableDemo2);
	
	  thread1.start();
	  thread2.start();
   }
}

Output

Thread: Thread-1, State: New
Thread: Thread-2, State: New
Thread: Thread-1, State: Running
Thread: Thread-1, 4
Thread: Thread-1, 3
Thread: Thread-1, 2
Thread: Thread-1, 1
Thread: Thread-1, State: Dead
Thread: Thread-2, State: Running
Thread: Thread-2, 4
Thread: Thread-2, 3
Thread: Thread-2, 2
Thread: Thread-2, 1
Thread: Thread-2, State: Dead