繁体   English   中英

方法引用如何与线程一起工作? `新线程(foo::bar)`

[英]How do method references work with threads? `new Thread(foo::bar)`

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

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

那么如何解释它为什么起作用。

它是否像 lambda 一样工作?

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

public Thread(Runnable target)

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

public abstract void run()

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

您还可以使用 lambda 表达式代替方法参考:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM