如何用Python轻松实现进程间通信?

Susan Sarandon
发布: 2024-10-30 21:04:30
原创
696 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!