concurrent包

Posted genesisx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了concurrent包相关的知识,希望对你有一定的参考价值。

ExecutorCompletionService:提交任务线程,每一个线程任务直线完成后,将返回值放在阻塞队列中,然后可以通过阻塞队列的take()方法返回 对应线程的执行结果,是Executor和BlockingQueue的结合体,xecutorCompletionService在构造函数中会创建一个BlockingQueue(使用的基于链表的无界队列LinkedBlockingQueue),该BlockingQueue的作用是保存Executor执行的结果。当计算完成时,调用FutureTask的done方法。当提交一个任务到ExecutorCompletionService时,首先将任务包装成QueueingFuture,它是FutureTask的一个子类,然后改写FutureTask的done方法,之后把Executor执行的计算结果放入BlockingQueue中

futureTask:任务状态由变量state表示,任务状态都基于state判断。而futureTask的阻塞则是通过自旋+挂起线程实现.揭秘futureTask

以上是关于concurrent包的主要内容,如果未能解决你的问题,请参考以下文章

Java的并发神器concurrent包详解

java concurrent包常用类小结

concurrent包

Java源码Concurrent包剩余部分类

Concurrent包

Concurrent包