请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于你使用future感觉不理解

我一直不明白你用Future和队列有什么关系呀,future只是说你等待线程池里面任务完成后就返回输出结果,然后你又没有用BlockQuene,感觉老师你在把我们带偏呀

正在回答 回答被采纳积分+3

1回答

龙虾三少 2019-09-13 14:25:55

首先:线程池中有一个等待队列,就是用blockqueue实现的,我们将任务提交给线程池,线程池中可执行线程沾满后会将任务放到等待队列中,这样做就等于是限制了用户并发的流量,使得其在线程池的等待队列中排队处理。

然后future的使用是为了让前端用户在调用controller后可以同步的获得执行的结果

2 回复 有任何疑惑可以回复我~
  • 提问者 邵志勇 #1
    老师,我觉得您说的不对,您可以看源码,其实,你只是使用了线程池封装的队列而已!如果您想用future里面的队列,应该使用ExecutorCompletionService来把线程池封装之后在使用future就可以使用future里面执行线程的队列!
    回复 有任何疑惑可以回复我~ 2019-09-17 15:57:05
  • 提问者 邵志勇 #2
    具体可以参考java并发编程实战第六章107页!只是建议!
    回复 有任何疑惑可以回复我~ 2019-09-17 15:59:59
  • 龙虾三少 回复 提问者 邵志勇 #3
    同学你还是没懂我的意思,用future只是为了获取线程池执行后的结果,和future队列无关,用的只是线程池的队列让所有执行排队而已
    回复 有任何疑惑可以回复我~ 2019-09-17 16:01:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信