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
  • 相关阅读:
    ABAP-创建客户
    Windows 10 上的 Git 如何清除密码? Git Credential Manager for Windows
    FastAdmin 是如何利用 Git 管理插件代码的?
    关于 ThinkPHP5 使用 getBy 字段名方式获取数据
    如何开始一个电子硬件项目?(思维导图)
    随笔:关于 FastAdmin ueditor 插件 中的 rand mt_rand mt_getrandmax 问题
    Chrome 的应用功能越来越强大
    FastAdmin Bootstrap-Table 关于客户端模式(由 计算所有页的的总数引发的思考)
    随笔教程:FastAdmin 如何打开新的标签页
    odoo 数据库选择的随笔
  • 原文地址:https://www.cnblogs.com/fengpingfan/p/14709243.html
Copyright © 2011-2022 走看看