0

我在网上看到过一些线程下载器,甚至还有一些多部分下载器(HTTP)。

我还没有将它们视为一个类/函数。

如果你们中的任何人有一个类/函数,我可以将其放入我需要获取多个文件的任何应用程序中,我将非常感激。

如果有一个库/框架(或程序的后端)可以做到这一点,请指导我吗?

4

1 回答 1

1

Christopher Arndt 的Threadpool可能是您正在寻找的。我已经将这个“易于使用的面向对象的线程池框架”用于您描述的确切目的,并且效果很好。请参阅链接页面底部的使用示例。而且它真的很容易使用:只需定义三个函数(其中一个是可选的异常处理程序代替默认处理程序),您就可以使用了。

来自http://www.chrisarndt.de/projects/threadpool/

  • 面向对象的可重用设计
  • 提供回调机制来处理从工作线程返回的结果。
  • WorkRequest 对象包装分配给工作线程的任务,并允许轻松地将任意数据传递给回调。
  • Queue 类的使用解决了大多数锁定问题。
  • 所有工作线程都是守护线程,所以它们在主程序退出时退出,无需加入。
  • 线程一创建就开始运行。无需启动或停止它们。您可以随时增加或减少池大小,多余的线程将在完成当前任务后退出。
  • 在将最后一个任务分配给线程后,您不需要保留对线程的引用。你只要告诉它:“完成后不要回来找工作!”
  • 线程在等待分配任务时不会消耗周期,它们只是在任务队列为空时阻塞(尽管它们每隔几秒钟就会醒来以检查它们是否被解雇)。

也可在http://pypi.python.org/pypi/threadpool、easy_install或作为 subversion checkout 获得(参见项目主页)。

于 2009-12-30T11:15:08.780 回答