2009-12-30 4 views
0

나는 약간의 스레드 downloaders을 온라인으로 보았고 심지어는 소수의 multi-part downloaders (HTTP)을 보았다.파이썬을 통한 멀티 파트/스레드 다운로더?

클래스/함수로 함께 보지 못했습니다.

클래스/함수가 주위에있는 경우, 여러 파일을 가져와야하는 응용 프로그램 중 하나에 놓을 수 있습니다. 많은 의무가 있습니다.

이 작업을 수행하는 라이브러리/프레임 워크 (또는 프로그램의 백 엔드)가있는 경우 나를 향해 안내해주십시오.

답변

1

Threadpool Christopher Arndt가 당신이 찾고있는 것일 수도 있습니다. 나는 this "사용하기 쉬운 객체 지향 스레드 풀 프레임 워크"를 사용했습니다. 당신이 묘사 한 정확한 목적을 위해 그것은 훌륭하게 작동합니다. 연결된 페이지 하단의 usage examples을 참조하십시오. 그리고 실제로 사용하기 쉽습니다 : 3 개의 함수를 정의하십시오 (그 중 하나는 기본 처리기 대신 선택적 예외 처리기입니다). http://www.chrisarndt.de/projects/threadpool/에서

:

  • 객체 지향,
  • 들이 작업자 스레드에서 반환 될 때 콜백 메커니즘이 결과를 처리하기 위해 제공 재사용 가능한 디자인.
  • WorkRequest 객체는 작업자 스레드에 할당 된 작업을 래핑하고 콜백에 임의의 데이터를 쉽게 전달할 수있게합니다.
  • Queue 클래스를 사용하면 대부분의 잠금 문제를 해결할 수 있습니다.
  • 모든 작업자 스레드는 데몬 (daemonic)이므로 주 프로그램이 종료 될 때 종료되며 연결 필요가 없습니다.
  • 스레드는 생성하자 마자 실행을 시작합니다. 시작하거나 중지 할 필요가 없습니다. 언제든지 풀 크기를 늘리거나 줄일 수 있습니다. 불필요한 스레드는 현재 작업이 끝나면 종료됩니다.
  • 마지막 작업을 할당 한 스레드에 대한 참조를 유지할 필요가 없습니다. 당신은 단지 그것을 말합니다 : "일을 마치고 돌아 오지 마라!"
  • 스레드는 작업 할당을 기다리는 동안주기를 먹지 않으며 작업 대기열이 비어있을 때만 차단합니다. 단 몇 초마다 깨어나서 닫혀 있는지 확인합니다.

http://pypi.python.org/pypi/threadpool, easy_install 또는 subversion 체크 아웃 (project homepage 참조)에서도 이용 가능합니다.

+0

이 플러스 urllib를 사용했는데 나중에 뒤틀린 것으로 옮겼습니다. – torger

관련 문제