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