第一次在论坛频道上发文章,大家轻拍。
有需要的可以一起研究一下,学了java也挣不了什么大钱,但可以写一些自己需要的工具,就当娱乐。没有需要的就当看个热闹。
前段时间为了下载播布客上的SWF视频,写了一个多任务、多线程的下载工具。
其中多线程下载部分是引用的ITEYE上别的同学的代码,地址找不到了,但代码中注释
在使用时做了适当的小修改,以适合我的需求。在这里表示感谢!
同时也感谢播布客提供的视频。
关于多任务(多线程)部分还有一些问题不是很明白,希望各位大牛们指点迷津。
用的是jdk5里面的java.util.concurrent包。
这里面ThreadPoolExecutor的几个参数值了解的不是很彻底,特别是
这个大小难道要比我所有的任务数要大吗?
附上下载列表的样式。解析地址的代码也放在了附件中。
相关代码在附件中。
有需要的可以一起研究一下,学了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
相关代码在附件中。