MST

星途 面试题库

面试题:Java中如何使用Lambda表达式创建并启动一个多线程

请编写代码展示如何运用Java的Lambda表达式创建一个新线程并启动它,解释Runnable接口在这个过程中的作用,以及Lambda表达式相比传统方式创建线程有哪些优势。
38.5万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

代码示例

public class LambdaThreadExample {
    public static void main(String[] args) {
        // 使用Lambda表达式创建并启动新线程
        Thread thread = new Thread(() -> {
            System.out.println("新线程正在运行:" + Thread.currentThread().getName());
        });
        thread.start();
    }
}

Runnable接口的作用

在Java中,Runnable接口是一个函数式接口,它只包含一个抽象方法run()。当我们创建线程时,需要一个任务来定义线程要执行的操作,Runnable接口就提供了这样一个规范,实现Runnable接口的run()方法就定义了线程的执行逻辑。在上述Lambda表达式创建线程的代码中,虽然没有显式地实现Runnable接口,但实际上() -> { System.out.println("新线程正在运行:" + Thread.currentThread().getName()); }这个Lambda表达式就相当于实现了Runnable接口的run()方法。

Lambda表达式相比传统方式创建线程的优势

  1. 代码简洁:传统方式创建线程需要创建一个类实现Runnable接口,然后实例化该类并将其传递给Thread构造函数。而Lambda表达式可以直接在创建Thread对象时定义线程的执行逻辑,无需额外定义类,减少了样板代码。例如传统方式:
class MyRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("新线程正在运行:" + Thread.currentThread().getName());
    }
}
public class TraditionalThreadExample {
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread thread = new Thread(myRunnable);
        thread.start();
    }
}

对比可见,Lambda表达式方式代码更加简洁。 2. 提高可读性:Lambda表达式将代码逻辑紧凑地表达出来,对于简单的线程任务,更易于理解其执行的内容,特别是在代码中线程创建较多的情况下,能让代码结构更加清晰。