A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/java-lang-thread-class-java/ below:

Java Thread Class - GeeksforGeeks

Java Thread Class

Last Updated : 23 Jul, 2025

Thread is a line of execution within a program. Each program can have multiple associated threads. Each thread has a priority which is used by the thread scheduler to determine which thread must run first. Java provides a thread class that has various method calls to manage the behavior of threads by providing constructors and methods to perform operations on threads. 

A Thread is a program that starts with a method() frequently used in this class only known as the start() method. This method looks out for the run() method which is also a method of this class and begins executing the body of the run() method. Here, keep an eye on the sleep() method which will be discussed later below.

Note: Every class that is used as a thread must implement Runnable interface and override its run method.

Syntax

public class Thread extends Object implements Runnable

Constructors of Thread Class Constructor  Action Performed  Thread() Allocates a new Thread object. Thread(Runnable target) Allocates a new Thread object. Thread(Runnable target, String name) Allocates a new Thread object. Thread(String name) Allocates a new Thread object. Thread(ThreadGroup group, Runnable target) Allocates a new Thread object. Thread(ThreadGroup group, Runnable target, String name) Allocates a new Thread object so that it has targeted as its run object, has the specified name as its name, and belongs to the thread group referred to by a group. Thread(ThreadGroup group, Runnable target, String name, long stackSize) Allocates a new Thread object so that it has targeted as its run object, has the specified name as its name, and belongs to the thread group referred to by group, and has the specified stack size. Thread(ThreadGroup group, String name) Allocates a new Thread object.

Example: Java program to demonstrate usage of Thread class 

Java
// Java Program to demonstrate
// usage of Thread class

class MyThread extends Thread 
{
  	// Overriding the run method
  	@Override
    public void run() 
    {
        for (int i = 0; i < 5; i++) 
        {
            System.out.println(Thread.currentThread().getName()
                               + " - Count : " + i);
            
          	try {
              	// Sleep for 500 milliseconds
                Thread.sleep(500); 
            } 
          	catch (InterruptedException e) {
                System.out.println("Thread interrupted");
            }
        }
    }
}

// Main Class
public class Geeks 
{
    public static void main(String[] args) 
    {
        MyThread thread1 = new MyThread();
        MyThread thread2 = new MyThread();

        thread1.setName("Thread 1");
        thread2.setName("Thread 2");

      	// Start thread 1
        thread1.start(); 
      
      	// Start thread 2
        thread2.start(); 
    }
}
Output:
Thread 1 - Count : 0
Thread 2 - Count : 0
Thread 1 - Count : 1
Thread 2 - Count : 1
Thread 1 - Count : 2
Thread 2 - Count : 2
Thread 1 - Count : 3
Thread 2 - Count : 3
Thread 2 - Count : 4
Thread 1 - Count : 4

Note: Execution of the thread is not according to the sequence, it can be executed in any sequence Thread 1 then Thread 2 , or Thread 2 then Thread 1.

Methods of Thread Class Methods Action Performed  activeCount() Returns an estimate of the number of active threads in the current thread's thread group and its subgroups checkAccess() Determines if the currently running thread has permission to modify this thread clone() Throws CloneNotSupportedException as a Thread can not be meaningfully cloned currentThread() Returns a reference to the currently executing thread object dumpStack() Prints a stack trace of the current thread to the standard error stream enumerate(Thread[] tarray) Copies into the specified array every active thread in the current thread's thread group and its subgroups getAllStackTraces() Returns a map of stack traces for all live threads getContextClassLoader() Returns the context ClassLoader for this Thread getDefaultUncaughtExceptionHandler() Returns the default handler invoked when a thread abruptly terminates due to an uncaught exception getId() Returns the identifier of this Thread getName() Returns this thread's name getPriority() Returns this thread's priority getStackTrace() Returns an array of stack trace elements representing the stack dump of this thread getState() Returns the state of this thread getThreadGroup() Returns the thread group to which this thread belongs getUncaughtExceptionHandler() Returns the handler invoked when this thread abruptly terminates due to an uncaught exception holdsLock(Object obj) Returns true if and only if the current thread holds the monitor lock on the specified object interrupt() Interrupts this thread interrupted() Tests whether the current thread has been interrupted isAlive() Tests if this thread is alive isDaemon() Tests if this thread is a daemon thread isInterrupted() Tests whether this thread has been interrupted join() Waits for this thread to die join(long millis) Waits at most millis milliseconds for this thread to die run() If this thread was constructed using a separate Runnable run object, then that Runnable object's run method is called; otherwise, this method does nothing and returns setContextClassLoader(ClassLoader cl) Sets the context ClassLoader for this Thread setDaemon(boolean on) Marks this thread as either a daemon thread or a user thread setDefaultUncaughtExceptionHandler( Thread.UncaughtExceptionHandler eh) Set the default handler invoked when a thread abruptly terminates due to an uncaught exception, and no other handler has been defined for that thread setName(String name) Changes the name of this thread to be equal to the argument name. setUncaughtExceptionHandler( Thread.UncaughtExceptionHandler eh) Set the handler invoked when this thread abruptly terminates due to an uncaught exception setPriority(int newPriority) Changes the priority of this thread sleep(long millis) Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds, subject to the precision and accuracy of system timers and schedulers start() Causes this thread to begin execution; the Java Virtual Machine calls the run method of this thread toString() Returns a string representation of this thread, including the thread's name, priority, and thread group yield() A hint to the scheduler that the current thread is willing to yield its current use of a processor Methods Inherited from java. lang.Object Class 

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4