zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    vue-修改vue项目运行端口号
    任正非521央视采访全文
    是施压还是真的决裂?
    贸易战风波继续
    华为对封杀的态度和格局
    美国封锁对华为的影响
    布鲁克斯法则 (Brooks's Law)
    2019第20周日
    如何让自己走的更远
    如何应对中年危机
  • 原文地址:https://www.cnblogs.com/fengpingfan/p/14709243.html
Copyright © 2011-2022 走看看