码迷,mamicode.com
首页 > 其他好文 > 详细

concurrent包

时间:2018-08-08 15:06:42      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:变量   cut   包装   lin   queue   ret   targe   基于   ice   

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

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

concurrent包

标签:变量   cut   包装   lin   queue   ret   targe   基于   ice   

原文地址:https://www.cnblogs.com/Genesisx/p/9442326.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!