0

オンラインでスレッド化されたダウンローダーをいくつか見ましたが、マルチパートダウンローダー(HTTP)もいくつか見ました。

私はそれらをクラス/関数として一緒に見たことがありません。

誰かがクラス/関数を持っていて、複数のファイルを取得する必要があるアプリケーションのいずれかにドロップできる場合、私は非常に義務付けられます。

これを行うライブラリ/フレームワーク(またはプログラムのバックエンド)がある場合は、それに向けて指示してください。

4

1 に答える 1

1

ChristopherArndtによるスレッドプールはあなたが探しているものかもしれません。私はあなたが説明する正確な目的のためにこの「使いやすいオブジェクト指向のスレッドプールフレームワーク」を使用しました、そしてそれは素晴らしい働きをします。リンク先ページ下部の使用例をご覧ください。そして、それは本当に使いやすいです。3つの関数(そのうちの1つはデフォルトのハンドラーの代わりにオプションの例外ハンドラーです)を定義するだけで、すぐに使用できます。

http://www.chrisarndt.de/projects/threadpool/から:

  • オブジェクト指向の再利用可能なデザイン
  • 結果がワーカースレッドから返されるときに結果を処理するためのコールバックメカニズムを提供します。
  • WorkRequestオブジェクトは、ワーカースレッドに割り当てられたタスクをラップし、コールバックに任意のデータを簡単に渡すことができます。
  • Queueクラスを使用すると、ほとんどのロックの問題が解決されます。
  • すべてのワーカースレッドはデーモンであるため、メインプログラムが終了すると終了し、参加する必要はありません。
  • スレッドは、作成するとすぐに実行を開始します。それらを開始または停止する必要はありません。プールサイズはいつでも増減できます。余分なスレッドは、現在のタスクを完了すると終了します。
  • 最後のタスクをスレッドに割り当てた後は、スレッドへの参照を保持する必要はありません。あなたはただそれを言います:「あなたが終わったとき、仕事を探しに戻ってこないでください!」
  • スレッドは、タスクが割り当てられるのを待っている間はサイクルを消費せず、タスクキューが空になるとブロックするだけです(ただし、スレッドは数秒ごとにウェイクアップして、却下されているかどうかを確認します)。

http://pypi.python.org/pypi/threadpool、easy_install、またはSubversionチェックアウトとしても利用できます(プロジェクトのホームページを参照)。

于 2009-12-30T11:15:08.780 に答える