【发布时间】:2020-11-06 02:19:04
【问题描述】:
class test
{
public static void main(String[] args)
{
System.out.println("Start");
MyClass myClass = new MyClass();
myClass.runFunc();
System.out.println("End");
}
}
class MyClass
{
public void hello()
{
System.out.println("Hello");
}
public void runFunc()
{
Runnable run = this::hello;
new Thread(run).start();
}
}
这里hello 是MyClass 的成员函数,而不是任何实现Runnble 的类的实例。但分配 Runnable run = this::hello; 仍然没有失败,hello 函数正在新线程的上下文中执行。
我知道Runnable 也可以用 lambda 表达式初始化,但这里也不是这样。
我是 Java 新手。有人可以解释一下这是如何工作的以及这种行为背后的逻辑是什么。
【问题讨论】:
标签: java multithreading runnable