2017-07-25 8 views
0

私は同時に複数の要求を行うWebスクレーパーを構築しています。私は現在、multiprocessingモジュールを使用していますが、デジタルオーシャンドロップレットで動作しているため、プロセッサ/メモリのボトルネックが発生しています。マルチプロセスとネットワーク操作のマルチスレッド

これはWebスクレーパーであり、スクリプトに費やされた時間のほとんどがネットワークを待っている可能性が高いため、リソースの使用を減らすために代わりにスレッドを使用する方が効率的ですか?スレッディングは、ブロッキングネットワークコールを検出し、ロックを解除しますか?マルチプロセッシングとマルチスレッディングを絡み合わせることは可能でしょうか?

答えて

2

multiprocessingモジュールは、それ以前のバージョンのthreadingと大きく互換性があるように開発されているため、1つのプロセスでスレッド操作に移行することは難しくありません。

ブロッキングコール(主にI/O)が発生すると、呼び出しスレッドは中断され(実行不能になります)、他のスレッドはCPUを使用できるようになります。

複数のプロセスでマルチスレッドを使用することは可能ですが、通常はそうではありません。

関連する問題