首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对多个下载进行排队,寻找生产者和消费者API

对多个下载进行排队,寻找生产者和消费者API
EN

Stack Overflow用户
提问于 2011-06-26 05:44:04
回答 1查看 1.5K关注 0票数 1

我有一个应用程序( servlet,但这不是很重要),它下载一组文件并对其进行解析以提取信息。到目前为止,我在一个循环中完成了这些操作:-在Internet上获取新文件-分析它。

对于这个问题,多线程下载管理器似乎是一个更好的解决方案,我希望以最快的方式实现它。

有些下载是依赖于其他下载的(因此,此集合是部分排序的)。

多线程编程很难,如果我能找到一个API来做这件事,我会很高兴的。我需要将一组文件(已排序)放入队列中,并获得第一组完全下载的文件。

你知道有什么库可以用来实现这一点吗?

问候你,斯特凡

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-26 05:53:57

你可以这样做:

代码语言:javascript
复制
BlockingQueue<Download> queue = new BlockingQueue<Download>();
ExecutorService pool = Executors.newFixedThreadPool(5);
Download obj = new Download(queue); 
pool.execute(obj); //start download and place on queue once completed
Data data = queue.take(); //get completely downloaded item

如果每次下载的速度不同,您可能必须使用不同类型的队列。我相信BlockingQueue是先入先出的。

您可能需要考虑使用PriorityBlockingQueue,它将根据下载对象的可比较方法对其进行排序。有关更多详细信息,请参阅。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6480726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档