高效的Python到Python进程间通信
什么是一个进程间通信(IPC)的框架或技术,满足以下要求:
- 能够在两个Python进程之间传输原生的Python对象
- 在时间和CPU使用上要高效(内存使用不太重要)
- 能够在Windows和Linux平台上都能使用
- 最好能与PyPy兼容
更新 1:这些进程在同一台主机上,并且使用相同版本的Python和其他模块
更新 2:这些进程是由用户独立运行的,彼此之间没有一个进程会启动另一个进程
5 个回答
10
可以先使用 multiprocessing 这个库。
如果你需要用到多个CPU,可以看看 celery。
21
本地对象在不同的进程之间是不能共享的,因为它们是通过引用计数来管理的。
不过,你可以把这些对象进行“序列化”(也就是把它们转换成一种可以存储或传输的格式),然后通过一些方法来共享,比如使用unix域套接字、内存映射(mmap)、zeromq,或者使用像sqlite3这样的中介工具,它们是专门为多个进程同时访问设计的。