在JAVA8新引入了一个Lambda表达式,使得创建线程的形式亦有所变化。这里提到的Lambda表达式,相当于大多数动态语言中常见的闭包,匿名函数的概念。
利用Lambda表达式,创建新线程的示范代码
Thread Thread = new Thread(()->{System.out.print(“java 8”);}).start();
()->{system.out.print(“java8”);}就是Lambda表达式,这个语句就等同于创建了runnable接口的一个匿名子类,并用new操作创建了这个这个子类的匿名对象,然后再把这个匿名对象当做Thread类的构造方法中的一个参数。
由此可见,Lambda表达式的结构大体分为3部分
(1)最前面的部分是一对括号,里面是参数,也可以无参数。
(2)中间是->,用来分割参数和主体部分。
(3)主体部分可以是一个表达式或者一个语句块,用花括号括起来,如果是一个表达式,表达式的值会被做为返回值返回。如果是语句块,需要用return语句指定返回值。
利用Lambda表达式创建新线程
public class Lambdademo{
public static void main(String[ ] args){
Runnable task=()->{String threadName=Thread.currentThread().getName();
System.out.print(“hello”+threadName);};
task.run();
Thread thread = new Thread(task);
thread.start();
System.out.print(“Dome”);
}
}