在Java8中,引入了Lambda表达式。这个问题是关于并行Lambda何时被执行的。
在Java8之前,Callable类是执行多线程的一种方式。Callables可以与Executor类一起使用来执行。假设我正在使用一个固定线程池,使用3作为活动处理任务的数量。假设我有8个任务。固定线程池将启动前三个任务,并在完成一个任务后启动下一个任务,直到所有8个任务都完成。
如果我将我的任务实现为Java8 Lambda,会发生什么?所有8个任务会同时启动吗?还是顺序地?或者以任何聪明的方式?
特别地,它们是否在与调用者相同的线程中运行(不使用Exeuctor)?根据它们的性质,我猜测Lambda可以轻松地在另一个线程中执行。
在Java8之前,Callable类是执行多线程的一种方式。Callables可以与Executor类一起使用来执行。假设我正在使用一个固定线程池,使用3作为活动处理任务的数量。假设我有8个任务。固定线程池将启动前三个任务,并在完成一个任务后启动下一个任务,直到所有8个任务都完成。
如果我将我的任务实现为Java8 Lambda,会发生什么?所有8个任务会同时启动吗?还是顺序地?或者以任何聪明的方式?
特别地,它们是否在与调用者相同的线程中运行(不使用Exeuctor)?根据它们的性质,我猜测Lambda可以轻松地在另一个线程中执行。