Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Java Program to Create a Thread

  • Difficulty Level : Hard
  • Last Updated : 06 Jun, 2021

Thread can be referred to as a lightweight process. Thread uses fewer resources to create and exist in the process; thread shares process resources. The main thread of Java is the thread that is started when the program starts. The slave thread is created as a result of the main thread. This is the last thread to complete execution.

 A thread can programmatically be created by:

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

  1. Implementing the java.lang.Runnable interface.
  2. Extending the java.lang.Thread class.

You can create threads by implementing the runnable interface and overriding the run() method. Then, you can create a thread object and call the start() method.

Thread Class:

The Thread class provides constructors and methods for creating and operating on threads. The thread extends the Object and implements the Runnable interface.

// start a newly created thread.
// Thread moves from new state to runnable state
// When it gets a chance, executes the target run() method
public void start()  

Runnable interface:

Any class with instances that are intended to be executed by a thread should implement the Runnable interface. The Runnable interface has only one method, which is called run().

// Thread action is performed
public void run() 

Benefits of creating threads :

  • When compared to processes, Java Threads are more lightweight; it takes less time and resources to create a thread.
  • Threads share the data and code of their parent process.
  • Thread communication is simpler than process communication.
  • Context switching between threads is usually cheaper than switching between processes.

Calling run() instead of start()

The common mistake is starting a thread using run() instead of start() method. 

  Thread myThread = new Thread(MyRunnable());;  //should be start();

The run() method is not called by the thread you created. Instead, it is called by the thread that created the myThread

Example 1: By using Thread Class


class GFG extends Thread {
    public void run()
        System.out.print("Welcome to GeeksforGeeks.");
    public static void main(String[] args)
        GFG g = new GFG(); // creating thread
        g.start(); // starting thread
Welcome to GeeksforGeeks.

Example 2: By implementing Runnable interface


class GFG implements Runnable {
    public static void main(String args[])
        // create an object of Runnable target
        GFG gfg = new GFG();
        // pass the runnable reference to Thread
        Thread t = new Thread(gfg, "gfg");
        // start the thread
        // get the name of the thread
    @Override public void run()
        System.out.println("Inside run method");
Inside run method

My Personal Notes arrow_drop_up
Recommended Articles
Page :