Creating Threads in Java
In Java, you can create threads using the Thread class or the Runnable interface. This tutorial explains both approaches with examples.
Step 1: Creating a Thread by Extending the Thread Class
To create a thread by extending the Thread class, you need to override its run() method. Below is an example:
class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("Thread running: " + i);
try {
Thread.sleep(500); // Pause for 500 milliseconds
} catch (InterruptedException e) {
System.out.println("Thread interrupted: " + e.getMessage());
}
}
}
}
public class ThreadExample {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start(); // Start the thread
}
}
Step 2: Creating a Thread by Implementing the Runnable Interface
To create a thread by implementing the Runnable interface, you need to define the run() method and pass an instance of your class to a Thread object. Below is an example:
class MyRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("Runnable running: " + i);
try {
Thread.sleep(500); // Pause for 500 milliseconds
} catch (InterruptedException e) {
System.out.println("Thread interrupted: " + e.getMessage());
}
}
}
}
public class RunnableExample {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start(); // Start the thread
}
}
Step 3: Using Anonymous Classes for Threads
For simpler use cases, you can create threads using anonymous classes. Below is an example:
public class AnonymousThreadExample {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("Anonymous thread running: " + i);
try {
Thread.sleep(500); // Pause for 500 milliseconds
} catch (InterruptedException e) {
System.out.println("Thread interrupted: " + e.getMessage());
}
}
}
});
thread.start(); // Start the thread
}
}
Step 4: Using Lambda Expressions for Threads (Java 8+)
If you are using Java 8 or later, you can use lambda expressions to simplify thread creation. Below is an example:
public class LambdaThreadExample {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
for (int i = 0; i < 5; i++) {
System.out.println("Lambda thread running: " + i);
try {
Thread.sleep(500); // Pause for 500 milliseconds
} catch (InterruptedException e) {
System.out.println("Thread interrupted: " + e.getMessage());
}
}
});
thread.start(); // Start the thread
}
}
Summary
In this tutorial, you learned:
- How to create a thread by extending the
Threadclass - How to create a thread by implementing the
Runnableinterface - How to use anonymous classes and lambda expressions for thread creation
Threads are a fundamental part of concurrent programming in Java and can be created using multiple approaches to suit different use cases.