“Runnable :: run” - 这是如何创建Executor实例的?

时间:2017-10-06 13:24:39

标签: java java-8 runnable executorservice executor

我正在开发一个项目,其中以下行用于创建测试Executor成员变量实例:

private Executor executor = Runnable::run;

代码运行并编译但我不明白Runnable::run如何创建Executor的实例,因为两者都是不同的接口。

有人能够解释吗?特别是:

  • Runnable的实现来自哪里?
  • 如何将其分配给Executor实施(因为Executor是一个不同的界面)?
  • 创建了哪种Executor?例如单线程或汇集
  • 如何在Java 8之前编写它?

感谢。

1 个答案:

答案 0 :(得分:4)

Executor@FunctionalInterface

 public interface Executor {
     void execute(Runnable command);
 }

你可以像这样重写它,以便更好地理解它:

 Executor executor = (Runnable r) -> r.run(); // or Runnable::run