ホームページ バックエンド開発 Python チュートリアル Python クローラーにはいくつのスレッドが適切ですか?

Python クローラーにはいくつのスレッドが適切ですか?

Jun 12, 2019 am 11:19 AM
python

最近、ECサイトのデータをクロールしようと計画しています。代理店や流通のことは考えず、まずは効率の話をしましょう(もちろん急ぎすぎるとブロックされます)。ポイント。通常の状況では、初心者が最初に考えるのは、シングルスレッドの for ループです。次に、for ループで 5 つのスレッドを直接開くことを考えます。問題は、URL リクエストが返されない場合、残りはただ待つことになるということです。このように複数のスレッドを使用しても意味がありません。

Python クローラーにはいくつのスレッドが適切ですか?

パフォーマンスに関する考慮事項

マルチスレッドまたはマルチプロセスを使用することが確実な場合、マルチスレッドを使用する必要があります。 Python の GIL ロックのせいで、マルチプロセッシングとマルチスレッドに対して特定の偏見を持っている人もいます。これら 2 つの違いについて話しましょう。

マルチスレッド

一般に、.py ファイルを開始することは、プロセスを開始することと同じであり、プロセス内ではデフォルトで 1 つのスレッドが動作します。私たちは、プロセス内で複数のスレッドを有効にする多くのスレッド手段を使用します。

しかし、ここで疑問が生じます。なぜマルチスレッドを使用するのでしょうか?

プロセスを開始するときに、家に相当するメモリ領域を作成する必要があることはわかっています。私たちはこの家で作業しなければなりません。人をスレッドと考えることができます。あなたの家 通常の状況で 10 人用のスペースと 20 人用のスペースに違いがあるのは、パイプなどのスレッドがデフォルトで通信できることがわかっているためです (プロセスはデフォルトでは通信できませんが、テクノロジを使用して実現できます)。 )。マルチスレッドを使用すると、計算データの正確性を保証できるため、GIL ロックは同時に 1 つのスレッドのみが計算できるようにするようです。

GIL ロックは、たとえば、この部屋で決済される口座がある場合、同時にその口座を計算できるのは 1 人だけであるため、基本的に理解できます。このアカウントには 5 人がいます。明確に計算できれば、必要なのは 10 平方メートルの部屋だけです。なぜ 10 人を雇って 20 平方メートルを費やす必要があるのでしょうか?したがって、スレッドを多く開くほど良いというわけではありません。ただし、ただし、この計算をするときに全員が頭を使う(CPU 計算)必要はありません。他のこと(たとえば、5 人で作業を分担して各パートを計算するなど)を行うこともできます。計算完了後に結果を記録します。後の調整のための台帳では、全員が自分の台帳を持っているため、マルチスレッドは IO 操作に適しています。IO 操作に適しているからといって、人数が多ければ多いほど良いというわけではないことに注意してください。 、より良いので、 これ 金額は依然として実際の状況によって異なります

以上がPython クローラーにはいくつのスレッドが適切ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? Apr 01, 2025 pm 02:48 PM

多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

Scapy Crawlerを使用するときにパイプラインの永続的なストレージファイルを書き込めない理由は何ですか? Scapy Crawlerを使用するときにパイプラインの永続的なストレージファイルを書き込めない理由は何ですか? Apr 01, 2025 pm 04:03 PM

Scapy Crawlerを使用する場合、パイプラインの永続的なストレージファイルを書くことができない理由は?ディスカッションデータクローラーにScapy Crawlerを使用することを学ぶとき、あなたはしばしば...

Python hourglassグラフ図面:可変未定義エラーを避ける方法は? Python hourglassグラフ図面:可変未定義エラーを避ける方法は? Apr 01, 2025 pm 06:27 PM

Python:Hourglassグラフィック図面と入力検証この記事では、Python NoviceがHourglass Graphic Drawingプログラムで遭遇する可変定義の問題を解決します。コード...

PythonプロセスプールがTCPリクエストを同時に処理し、クライアントが立ち往生する理由は何ですか? PythonプロセスプールがTCPリクエストを同時に処理し、クライアントが立ち往生する理由は何ですか? Apr 01, 2025 pm 04:09 PM

Python Process Poolは、クライアントが立ち往生する原因となる同時TCP要求を処理します。ネットワークプログラミングにPythonを使用する場合、同時のTCP要求を効率的に処理することが重要です。 ...

Python functools.partialオブジェクトによって内部的にカプセル化された元の関数を表示する方法は? Python functools.partialオブジェクトによって内部的にカプセル化された元の関数を表示する方法は? Apr 01, 2025 pm 04:15 PM

python functools.partialオブジェクトのpython functools.partialを使用してPythonを使用する視聴方法を深く探索します。

Pythonクロスプラットフォームデスクトップアプリケーション開発:どのGUIライブラリが最適ですか? Pythonクロスプラットフォームデスクトップアプリケーション開発:どのGUIライブラリが最適ですか? Apr 01, 2025 pm 05:24 PM

Pythonクロスプラットフォームデスクトップアプリケーション開発ライブラリの選択多くのPython開発者は、WindowsシステムとLinuxシステムの両方で実行できるデスクトップアプリケーションを開発したいと考えています...

GoogleとAWSはパブリックピピイメージソースを提供していますか? GoogleとAWSはパブリックピピイメージソースを提供していますか? Apr 01, 2025 pm 05:15 PM

多くの開発者はPypi(PythonPackageIndex)に依存しています...

See all articles