ホームページ バックエンド開発 Python チュートリアル Python のネットワーク プログラミング ライブラリ Gevent のインストールと使用のヒント

Python のネットワーク プログラミング ライブラリ Gevent のインストールと使用のヒント

Jul 06, 2016 pm 01:29 PM
gevent python 同時 プロセス

インストール(CentOSを例にします)
gevent は libevent と greenlet に依存します:
1. libeventをインストールします
libeventを直接yumインストール
次に、Python のインストールを構成します
2. easy_install をインストールします
(1)

リーリー

(2)

を使用する
リーリー

(3) easy_install を使用してコマンドが利用可能かどうかを確認し、利用できない場合は PATH にパスを追加します。
3.グリーンレットをインストールする
(1)

リーリー
(2)

リーリー

4.geventをインストールします

リーリー

ヒント
Gevent ライブラリは非常に高性能ですが、Python の GIL モデルのせいでスレッドがマルチコアのリソースを確保できないという事実に常に悩まされていました。
複数の Python プロセスを起動するマルチコア モードでは、lvs などのフロントエンドの負荷分散を追加する必要があり、少し面倒です。
マルチプロセッシング モジュールと os.fork により、2 つのプロセスがイベント コアに受け入れイベントを繰り返し登録するため、重複したファイル ハンドル例外が発生します。
単一プロセス監視と複数プロセス処理のモードでは、監視プロセスのリソースの割り当てが容易ではありません。1 つのコアを独立して割り当てる必要があるかどうか。個別に割り当てた場合、接続数が少ない場合にコアが無駄になります。割り当てられない場合、接続数が多い場合に CPU が頻繁にプロセスを切り替えます。
昨日、gevent がネットワーク モデルを複数のプロセスに簡単に分散して並列処理できることを発見しました。
秘密はgevent.fork()です。
私は gevent.fork が greenlet.spawn の単なるラッパーであることを当然のことだと思っていましたが、そうではないことがわかりました。 gevent.fork は os.fork を置き換えることができ、新しいプロセスを開始するだけでなく、並列処理のための基礎となるイベント処理も伝達します。

リーリー
Monkey.patch_os を追加した後、os.fork を gevent.fork に置き換えることができるため、マルチプロセッシング モジュールを通常どおり使用して並列処理の効果を実現できます。

リーリー

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Deepseek Xiaomiをダウンロードする方法 Deepseek Xiaomiをダウンロードする方法 Feb 19, 2025 pm 05:27 PM

Deepseek Xiaomiをダウンロードする方法

テンプレートのメリットとデメリットは何ですか? テンプレートのメリットとデメリットは何ですか? May 08, 2024 pm 03:51 PM

テンプレートのメリットとデメリットは何ですか?

Google AI、開発者向けに Gemini 1.5 Pro と Gemma 2 を発表 Google AI、開発者向けに Gemini 1.5 Pro と Gemma 2 を発表 Jul 01, 2024 am 07:22 AM

Google AI、開発者向けに Gemini 1.5 Pro と Gemma 2 を発表

Golang API 設計における同時実行性とコルーチンの適用 Golang API 設計における同時実行性とコルーチンの適用 May 07, 2024 pm 06:51 PM

Golang API 設計における同時実行性とコルーチンの適用

どうやって彼にdeepseekに尋ねますか どうやって彼にdeepseekに尋ねますか Feb 19, 2025 pm 04:42 PM

どうやって彼にdeepseekに尋ねますか

NET40とはどのようなソフトウェアですか? NET40とはどのようなソフトウェアですか? May 10, 2024 am 01:12 AM

NET40とはどのようなソフトウェアですか?

DeepSeekを検索する方法 DeepSeekを検索する方法 Feb 19, 2025 pm 05:18 PM

DeepSeekを検索する方法

ブラウザのプラグインは何語で書かれていますか? ブラウザのプラグインは何語で書かれていますか? May 08, 2024 pm 09:36 PM

ブラウザのプラグインは何語で書かれていますか?

See all articles