标签:管理 ble top fifo 串行 实现 时间 在线 data-
方法名 | 解释 |
newFixedThreadPool | 将创建一个固定长度的线程池,每当提交一个任务时就创建一个线程,知道达到线程池的最大数量。这时线程池的规模将不再变化(假设某个线程因为发生了未预期的Exception而结束,那么线程池会补充一个新的线程。) |
newCachedThreadPool | 将创建一个可缓存的线程池,假设线程池的当前规模超过了处理需求时。那么将回收空暇的线程。而当需求添加时,则能够加入新的线程,线程池的规模不存在不论什么限制。 |
newSingleThreadExecutor | 将会创建一个单线程的Executor。它创建单个工作者线程来运行任务,假设这个线程异常结束,会创建还有一个线程来替代。newSingleThreadExecutor能确保按照任务在队列中的顺序来串行运行(比如FIFO、LIFO、优先级) |
newScheduledThreadPool | 创建了一个固定长度的线程池,并且以延迟或定时的方式来运行任务,类似于Timer。 |
方法名 | 解释 |
shutdown | 将运行平缓的关闭过程:不再接受新的任务。同一时候等待已经提交的任务运行完毕—包含那些还未開始运行的任务。 |
shutdownNow | 将运行粗暴的关闭过程:它将尝试取消全部运行中的任务,而且不再启动队列中尚未開始运行的任务。 |
ExecutorService executor = Executors.newSingleThreadExecutor(); Callable<Object> task = new Callable<Object>() { public Object call() throws Exception { Object result = "..."; return result; } }; Future<Object> future = executor.submit(task); future.get(); // 等待至完毕 Future<Object> future = executor.submit(task); // 等待到任务被运行完毕返回结果 // 假设任务运行出错,这里会抛ExecutionException future.get(); //等待3秒,超时后会抛TimeoutException future.get(3, TimeUnit.SECONDS); Callable<Object> task = new Callable<Object>() { public Object call() throws Exception { Object result = …; return result; } };
Future通常包含get(堵塞至任务完毕)。 cancel。get(timeout)(等待一段时间)
等等。Future也用于异步变同步的场景。
注意,能够正常地或通过抛出异常来终止已完毕 任务。假设正在进行此操作时改动了给定的 collection,则此方法的结果是不确定的。
标签:管理 ble top fifo 串行 实现 时间 在线 data-
原文地址:http://www.cnblogs.com/tlnshuju/p/7219555.html