当你使用
-
单线程:创建的执行服务内部有一个线程。所有提交给它的任务将会序列化执行,也就是说,它会在单个线程上依次执行任务,不会有并发执行的情况发生。
-
任务队列:如果有多个任务提交给这个执行器,除了当前正在执行的任务外,其他任务将会在一个无界队列中等待,直到线程可用。
-
处理任务失败:如果执行中的线程由于任务抛出异常而终止,执行服务会安排一个新的线程来替换它,以继续执行后续的任务。
使用
请注意,创建的
下面是一个简单的例子,显示了如何使用
ExecutorService executorService = Executors.newSingleThreadExecutor(); executorService.execute(new Runnable() { public void run() { // 任务代码 System.out.println("执行任务在: " + Thread.currentThread().getName()); } }); executorService.shutdown(); // 当不再提交任务时,应关闭ExecutorService