为什么 ExecutorService 的“执行”和“提交”方法接受一个不是 Runnable 的方法引用?

问题描述 投票:0回答:0

我有一个返回 void 且不带参数的函数。将它传递到 ExecutorService.submit 或 ExecutorService.execute 时,我没有看到任何异常并且它有效。但是,根据文档,我们应该将 Runnable 传递给执行,将 Runnable 或 Callable 传递给提交。

Executors.newSingleThreadedExecutor().execute(this::myFunction);

private void myFunction()
{
   System.out.println("Testing");
}

另一方面,当我执行以下操作时:

Executors.newSingleThreadedExecutor().execute(() -> (Runnable) this::myFunction);

仍然,我没有看到任何例外。代码编译成功。但它永远不会执行

myFunction
.

java multithreading executorservice scheduledexecutorservice
© www.soinside.com 2019 - 2024. All rights reserved.