我有一个类,它实现了Runnable接口,并且是一个一旦启动就会无限期运行的任务(一个长时间运行的线程)。
public class LongRunningTask implements Runnable {
@Override
public void run() {
//stuff happening here
}
}
Run Code Online (Sandbox Code Playgroud)
一个简单的ExecutorService/ThreadPoolExecutor创作:
final ExecutorService executorService = Executors.newFixedThreadPool(8);
Run Code Online (Sandbox Code Playgroud)
如果LongRunningTask实际启动/执行,我能够观察到它的实际结果,因此,我注意到了这一点:
如果我传递给它执行executorService.execute(() -> new LongRunningTask());,它根本不会执行,也不会有结果。
如果我通过它来执行executorService.execute(new LongRunningTask());它,它将按照它应该的方式执行并且会有结果。
使用 的 lambda 语法有() ->什么区别?