`
liu_shui8
  • 浏览: 66441 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

多任务、多线程下载

阅读更多
第一次在论坛频道上发文章,大家轻拍。
有需要的可以一起研究一下,学了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


相关代码在附件中。

  • src.rar (6.2 KB)
  • 下载次数: 187
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics