浏览 2830 次
锁定老帖子 主题:多任务、多线程下载
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-29
有需要的可以一起研究一下,学了java也挣不了什么大钱,但可以写一些自己需要的工具,就当娱乐。没有需要的就当看个热闹。 前段时间为了下载播布客上的SWF视频,写了一个多任务、多线程的下载工具。 其中多线程下载部分是引用的ITEYE上别的同学的代码,地址找不到了,但代码中注释 /** * * @author annegu * @since 2009-07-16 * */ public class DownloadTask {} 在使用时做了适当的小修改,以适合我的需求。在这里表示感谢! 同时也感谢播布客提供的视频。 关于多任务(多线程)部分还有一些问题不是很明白,希望各位大牛们指点迷津。 用的是jdk5里面的java.util.concurrent包。 public static void main(String[] args) { // 构造一个线程池 ThreadPoolExecutor threadPool = new ThreadPoolExecutor(5, 5, 30, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(70), new ThreadPoolExecutor.DiscardOldestPolicy()); List<Map> list = getDownloadList(); for (int i = 0; i < list.size(); i++) { try { // 产生一个任务,并将其加入到线程池 threadPool.execute(new DownloadThread(list.get(i))); } catch (Exception e) { e.printStackTrace(); } } } 这里面ThreadPoolExecutor的几个参数值了解的不是很彻底,特别是 new ArrayBlockingQueue<Runnable>(70) 这个大小难道要比我所有的任务数要大吗? 附上下载列表的样式。解析地址的代码也放在了附件中。 第17讲:Chapter07.Instance.and.Media.Recovery.Structures http://www.boobooke.com//v//bbk1413 第18讲:Chapter07.Instance.and.Media.Recovery.Structures http://www.boobooke.com//v//bbk1414 相关代码在附件中。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-08-02
ArrayBlockingQueue
设置阻塞队列大小,翻翻源码就知道了 |
|
返回顶楼 | |
发表时间:2011-08-02
Java代码
/** * * @author annegu * @since 2009-07-16 * */ public class DownloadTask {} |
|
返回顶楼 | |