ホームページ > バックエンド開発 > Python チュートリアル > Python でプロセス間通信を簡単に実装するにはどうすればよいですか?

Python でプロセス間通信を簡単に実装するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-30 21:04:30
オリジナル
792 人が閲覧しました

How Can I Easily Implement Interprocess Communication in Python?

Python のプロセス間通信

複数の Python ランタイムを使用する場合、効果的なプロセス間通信を確立する必要があります。次のようなさまざまなメソッドが存在します。

  • 名前付きパイプ (os.mkfifo): 基本的なオプションではありますが、洗練されておらず、エラーが発生しやすい場合があります。
  • DBus サービス: デスクトップ環境に適していますが、ヘッドレス システムには非常に複雑です。
  • ソケット: 低レベルで手動集中型です。

包括的なソリューション

特定の要件に対処するには、マルチプロセッシング ライブラリを検討してください。ソケット通信をシームレスに処理し、任意の Python オブジェクトの送信を可能にするリスナーとクライアントを提供します。

サーバーの実装

サーバーは、受信メッセージをリッスンするように構成できます。

<code class="python">from multiprocessing.connection import Listener

address = ('localhost', 6000)
listener = Listener(address, authkey=b'secret password')
conn = listener.accept()
print('connection accepted from', listener.last_accepted)
while True:
    msg = conn.recv()
    # Process the received message here
    if msg == 'close':
        conn.close()
        break
listener.close()</code>
ログイン後にコピー

クライアントの実装

クライアントは通信を開始し、コマンドを Python オブジェクトとして送信できます:

<code class="python">from multiprocessing.connection import Client

address = ('localhost', 6000)
conn = Client(address, authkey=b'secret password')
conn.send('close')
# Send arbitrary objects:
# conn.send(['a', 2.5, None, int, sum])
conn.close()</code>
ログイン後にコピー

以上がPython でプロセス間通信を簡単に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート