Runnabler

package demo03.Lambda;
/*
创建Runnable接口的实现类,重写run方法,设置线程任务
*/
public class RunnableImpl implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+" 新线程创建了");
}
}

package demo03.Lambda;
/*
使用实现Runnable接口的方式实现多线程程序
*/
public class Demo01Runnable {
public static void main(String[] args) {
//创建Runnable接口的实现类对象
RunnableImpl run = new RunnableImpl();
//创建Thread类对象,构造方法中传递Runnable接口的实现类
Thread t = new Thread(run);
//调用start方法开启新线程,执行run方法
t.start();

    //简化代码,使用匿名内部类,实现多线程程序
    Runnable r = new Runnable(){
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName()+" 新线程创建了");
        }
    };
    new Thread(r).start();

    //简化代码
    new Thread(new Runnable(){
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getName()+" 新线程创建了");
        }
    }).start();
}

}

package demo03.Lambda;
/*
Lambda表达式的标准格式:
由三部分组成:
a.一些参数
b.一个箭头
c.一段代码
格式:
(参数列表) -> {一些重写方法的代码};
解释说明格式:
():接口中抽象方法的参数列表,没有参数,就空着;有参数就写出参数,多个参数使用逗号分隔
->:传递的意思,把参数传递给方法体{}
{}:重写接口的抽象方法的方法体
*/
public class Demo02Lambda {
public static void main(String[] args) {
//使用匿名内部类的方式,实现多线程
new Thread(new Runnable(){
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+" 新线程创建了");
}
}).start();

    //使用Lambda表达式,实现多线程
    new Thread(()->{
            System.out.println(Thread.currentThread().getName()+" 新线程创建了");
        }
    ).start();

    //优化省略Lambda
    new Thread(()->System.out.println(Thread.currentThread().getName()+" 新线程创建了")).start();
}

}

posted @ 2020-07-05 22:00  神树一世  阅读(165)  评论(0编辑  收藏  举报