java - 方法引用如何与线程一起使用? `new Thread(foo::bar)`

标签 java java-threads method-reference

我只是尝试使用方法引用来创建线程。

new Thread(thisMonitor::method1).start();

那么如何解释它为什么有效。

它的工作原理和 lambda 一样吗?

最佳答案

您正在使用的Thread构造函数接受Runnable:

public Thread(Runnable target)

Runnable 是一个函数式接口(interface),其方法不接受参数且不返回值:

public abstract void run()

如果method1是这样的方法,则方法引用thisMonitor::method1可以作为Runnable的实现。

您还可以使用 lambda 表达式来代替方法引用:

new Thread(() -> thisMonitor.method1()).start();

关于java - 方法引用如何与线程一起使用? `new Thread(foo::bar)`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70859531/

相关文章:

java - Vert.x 线程命名 - "vert.x-worker-thread-..."

java - 两个短命线程 vs. Executor

java - Java8中不同参数方法的引用

java - 不幸的是,我的 android studio 应用程序在我的设备 Redmi 2 Prime 中停止了,但它在 Nexus 模拟器中运行

java - Hibernate、JDBC 和 Java 在大中型结果集上的性能

java - 通过清理杀死一个可运行的 jar ?

java - 如何将 lambda 表达式更改为方法引用

java - 什么是 JVM 可以创建的线程的阈值限制数

java - 我们如何在 GWT 中从一页导航到另一页

java - 使用方法引用