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 |