Runnable Interface
Runnable Interface The Runnable interface in Java is another way to create and execute threads. It is preferred over extending the Thread class, especially when a class needs to extend another class as Java does not support multiple inheritance. Declaring a Thread with Runnable To use Runnable, implement the interface and pass the object to a Thread. class MyRunnable implements Runnable { public void run() { System.out.println("Runnable thread running..."); } } public class Main { public static void main(String[] args) { MyRunnable myRunnable = new MyRunnable(); Thread t = new Thread(myRunnable); t.start(); } } Advantages of Using Runnable Decouples task from thread mechanics. Allows class to extend another class. More flexible in multithreaded applications. Anonymous Runnable Example public class Main { public static void main(String[] args) { Thread t = new Thread(new Runnable() { public void run() { System.out.println("Anonymous Runnable running..."); } }); t.start(); } } Functional Interface & Lambda Expression (Java 8+) public class Main { public static void main(String[] args) { Runnable r = () -> System.out.println("Lambda Runnable running..."); Thread t = new Thread(r); t.start(); } } 🔗 Related Notes Thread Class Concurrent Programming Exception Handlers