Executors、Executor和ExecutorService
Executors 是一个帮助类,提供了创建几种预配置线程池实例的方法。如果你不需要应用任何自定义的微调,可以调用这些方法创建默认配置的线程池,因为它能节省很多时间和代码。
Executor 和 ExecutorService 接口则用于与Java 中不同线程池的实现协同工作。通常,我们应该将代码和线程池的实际实现分离,并再整个应用程序中使用这些接口。
Executor 接口提供了一个 execute() 方法将Runnable 实例提交到线程池中执行。
下面的代码时一个快速示例,演示了如何使用 Executors API 获取包含了单个线程池和无限队列支持的 Executor 实例,以便按顺序执行任务。
Executor executor = Executors.newSingleThreadExecutor();
获取了 Executor 实例后,我们就可以使用 execute() 方法将一个只在屏幕上打印 Hello World 的任务提交到队列中执行。
executor.execute(() -> System.out.println("Hello World"));
上面这个示例使用了lambda ( Java 8 特性) 提交任务, JVM 会自动推断该任务为 Runnable。