有没有办法让Python3中的C是什么:
int msgget(key_t key, int flags);
我必须创建一个有两个玩家的游戏,并且通过消息传递完成通信。
为此我可以创建一个对象multiprocessing.Queue(),但我似乎无法找到一种方法将此对象从播放器1传递给播放器2.每个播放器都在自己的终端中运行,所以它们是不是亲子关系。
要解决这个问题,我需要像C中的上述函数那样可以根据某个键或id获取Queue对象。是否存在在不同终端中运行的两个进程之间共享此对象的简单方法?
答案 0 :(得分:1)
您的两个进程无法访问彼此的内存中的对象,因此他们必须通过某种连接进行通信 - 很可能是套接字连接。消息队列(例如推荐作为注释的消息队列,或者可能是ZeroMQ)非常适合该作业,并且不难设置。看看http://zguide.zeromq.org/py:all。
尽管在这种情况下使用可以执行许多操作的消息传递协议或消息传递服务可能看起来很多工作和开销,但它实际上是一种非常简单直观的方法来处理这种情况。