Create runnable task using functional interface – java8 lambda stream (example)

1. Functional Interface java 8:

The interface having one abstract method is called the functional interface. E.g. Comparator, Runnable interface. The runnable interface will look like as follows

@FunctionalInterface
public interface Runnable {
 public abstract void run();
}

We have discussed about the Create threads using runnable interface. In current post, we will see how can we create Runnable task using Java 8 lambda.

2. Create thread using anonymous class:

//Tradition approach 1
Thread traditionalThread = new Thread(new Runnable() {   
 @Override
 public void run() {
  System.out.println("Runnable Traditional approach 1");  
 }
});

3. Create task in java using Runnable functional interface:

We will simply omit the anonymous class and we will have much cleaner code as

Runnable myTask = () -> System.out.println("Runnable using Java 8 lambda approach");

4. Program – create task using runnable functional interface

package org.learn;

class MyTask implements Runnable {
 public void run() {
  System.out.println("Runnable Traditional approach 2");
 }
}

public class RunnableUsingJava8 {

 public static void main(String[] args) throws InterruptedException {
  // Tradition approach 1
  Thread traditionalThread = new Thread(new Runnable() {
   @Override
   public void run() {
    System.out.println("Runnable Traditional approach 1");
   }
  });
  traditionalThread.start();

  // Tradition approach 2
  Thread traditionalThread2 = new Thread(new MyTask());
  traditionalThread2.start();

  // Runnable using java 8 lambda
  Runnable myTask = () -> System.out.println("Runnable using Java 8 lambda approach");
  Thread thread = new Thread(myTask);
  thread.start();
 }
}

5. Output – Task using runnable functional interface (java 8)

Runnable Traditional approach 1
Runnable Traditional approach 2
Runnable using Java 8 lambda approach
Scroll to Top