[JAVA学习笔记-87]CompletionService简单分析

xiaoxiao2021-02-28  92

1、ExecutorCompletionService 的构造函数中, aes 对应 AbstractExecutorService 或 null completionQueue 对应 LinkedBlockingQueue<Future<V>> ,此队列用来保存FutureTask本身 2、执行submit RunnableFuture<V> f = newTaskFor(task);  //Runnable/Callable对象封装到FutureTask<V> 中,FutureTask继承了 RunnableFuture接口,分别对应Future以及Runnable executor.execute(new QueueingFuture(f)); //QueueingFuture 继承 FutureTask<Void>,而后者实现了Runnable //在 QueueingFuture 的构造函数中执行了done将 上述的FutureTask加入到 completionQueue 中 3、take、poll操作都是直接调用 BlockingQueue的对应操作,返回后调用FutureTask的Future接口的get方法获取result
转载请注明原文地址: https://www.6miu.com/read-76058.html

最新回复(0)