1. 程式人生 > 其它 >Java學習-080-多執行緒13:利用Lambda表示式實現執行緒類的定義

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 實現。