Java学习-080-多线程13:利用Lambda表达式实现线程类的定义

用较小的代码量可以实现的线程定义,可以通过 Lambda 表达式进行线程类的实现。

源代码示例如下所示:

package com.fanfengping.demo;

import lombok.extern.slf4j.Slf4j;

/**
 * 利用Lambda表达式进行线程类的实现定义
 */
@Slf4j
public class Demo06LambdaRunnable {
    public static void main(String[] args) {
        for (int i = 0; i < 6; i++) {
            String name = "Lambda " + i;

            Runnable runnable = () -> {
                for (int j = 0; j < 3; j++) {
                    log.info("线程 {} ,运行 {}", Thread.currentThread().getName(), j);
                }
            };

            new Thread(runnable, name).start();
        }
    }
}

  

执行程序,输出结果如下所示:

[Lambda 3] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 3 ,运行 0
[Lambda 0] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 0 ,运行 0
[Lambda 3] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 3 ,运行 1
[Lambda 3] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 3 ,运行 2
[Lambda 0] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 0 ,运行 1
[Lambda 1] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 1 ,运行 0
[Lambda 2] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 2 ,运行 0
[Lambda 1] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 1 ,运行 1
[Lambda 2] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 2 ,运行 1
[Lambda 1] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 1 ,运行 2
[Lambda 2] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 2 ,运行 2
[Lambda 5] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 5 ,运行 0
[Lambda 5] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 5 ,运行 1
[Lambda 4] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 4 ,运行 0
[Lambda 4] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 4 ,运行 1
[Lambda 4] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 4 ,运行 2
[Lambda 0] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 0 ,运行 2
[Lambda 5] INFO com.fanfengping.demo.Demo06LambdaRunnable - 线程 Lambda 5 ,运行 2

  

使用 Lamdba 表达式实现线程定义,代码量较少;但对于业务逻辑复杂的线程实现,不建议采用 Lambda 实现。

我本渺小,但山峰,我一次次绝顶!


PS:若有错误,敬请告知,不胜感激!
Copyright @范丰平 版权所有,如需转载请标明本文原始链接出处,严禁商业用途! 我的个人博客链接地址:http://www.cnblogs.com/fengpingfan
原文地址:https://www.cnblogs.com/fengpingfan/p/14709243.html