创建线程用原来的方式和用Lambda方式效率对比

 

欢迎大佬们进行指导

昨天被问到JDK8的新特性,今天花了不少的时间来研究,网上的资料很多,有用的太少了,闲来无事做个小测试 看代码吧 两个类放在一起了总的说呢 测试好多次 原来的方式都比用Lambda的方式快 平均差1-2千毫秒,也不知道是不是我的代码有问题,还是就是Lambda比较慢,Lambda用起来非常的方便,用在循环遍历。创建线程,以及创建接口,或者在匿名类的时候代码都很简洁,Lambda表达式看起来有点像前端某技术的样子。Lambda表达式对我这个小菜来说,真的是很难看懂;

package com.czxy.test;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Created by ${sunxin} on 2019/3/7
 * Lambda可以简循环遍历的写法,不是一般的简化,少些很多代码,简化创建线程的代码,简化以后的代码很少,不易懂,像前端javaScrpit
 */
public class Lambda {
    /**
     *     Lambda 在创建线程方面可以简化写法
     */
    //原来的写法
    public static void main(String[] args) throws IOException {

            //获取执行前的毫秒值
            long old = System.currentTimeMillis();
            //执行一百千次
            for (int a = 0; a < 100000; a++) {
                //原来的方式创建线程 实现Runnable接口 重写run方法
                Thread thread = new Thread(new Runnable() {
                    @Override
                    public void run() {

                    }
                });
                thread.start();
            }
            //获取执行后的毫秒值
            long newTime = System.currentTimeMillis();
            //获得消耗的时间
            long i = newTime - old;
            System.out.println("创建100000个花费的总毫秒值"+i);

        /*
        使用Lambda表达式的新写法
         */
        //获取执行前的毫秒值
        long old1 = System.currentTimeMillis();
        for (int a =0;a<100000;a++){
            Thread threadLambda = new Thread(()-> System.out.println("使用Lambda创建了线程了"));
            threadLambda.start();
        }
        //获取执行后的毫秒值
        long newTime1 = System.currentTimeMillis();
        //获得消耗的时间
        long i1 = newTime1 - old1;
        System.out.println("Lambda创建100000个花费的总毫秒值"+i1);

    }

}

你可能感兴趣的:(Lambda)