在蟒蛇,它提供了很多办法模块多进程之间通信,Pipe,Queue,Value,Array和Manager.哪个是更好的选择?
如果要实现消息传递,请使用管道和队列。如果要实现共享内存,请使用Value和Array。如果要向多个进程公开面向对象的界面,请使用管理器。
Pipe 适用于一对一通讯或字节级协议:
Queue 与单向管道相似,但可能在多对多情况下起作用:
使用管道和一些锁/信号量来实现队列。
Value和Array:
ctypes)管理人员:
Value并且Array是一种共享内存的轻量级方法。以我的经验,使用SyncManager和的开销AutoProxy 可能很大。如果您可以使用Value或解决您的问题Array,请使用它们。SyncManager将面向对象的接口暴露给多个进程可能会很有用,除非不经常调用它。