ホームページ > バックエンド開発 > Python チュートリアル > Pythonマルチプロセス通信モジュール

Pythonマルチプロセス通信モジュール

高洛峰
リリース: 2016-10-18 10:00:27
オリジナル
1753 人が閲覧しました

いくつか例を挙げると、マルチプロセス通信には多くの方法があります。 Pythonでパッケージ化されたマルチプロセス通信モジュールmultiprocessing.connectionを試してみました。

簡単なテストでは、ソケットのカプセル化に問題がないことがわかり、多くのニーズを満たすことができます。

添付されたコードは次のとおりです:

client

#!/usr/bin/python
# -*- coding: utf-8 -*-
""" download - slave
"""
__author__ = 'Zagfai'
__license__ = 'MIT@2014-02'
  
import webtul
from multiprocessing.connection import Client
  
a = 0
try:
    while True:
        a += 1
        address = ('10.33.41.112', 6666)
        conn = Client(address, authkey='hellokey')
        #print conn.recv()
        d = conn.recv()
        conn.close()
except:
    pass
print a
ログイン後にコピー

server

#!/usr/bin/python
# -*- coding: utf-8 -*-
""" downloader - master server
"""
__author__ = 'Zagfai'
__license__ = 'MIT@2014-02'
  
import webtul
from multiprocessing.connection import Listener
from threading import Thread
  
def listener():
    address = ('10.33.41.112', 6666)
    listener = Listener(address, backlog=100, authkey='hellokey')
    while True:
        conn = listener.accept()
        #print 'connection accepted from', listener.last_accepted
        try:
            conn.send({'1':2, '2':'abc'})
        except Exception, e:
            print e
        finally:
            conn.close()
    listener.close()
  
listener_th = Thread(target=listener)
listener_th.daemon = True
listener_th.start()
listener_th.join(timeout=20)
ログイン後にコピー


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