我需要在Python的进程之间进行通信,并且在每个进程中使用asyncio进行并发网络IO。

目前,我在进程之间使用multiprocessing.Pipesendrecv大量数据,但是我在asyncio之外使用,因此我相信我在IO_WAIT中花费了大量的CPU时间。

似乎asyncio可以并且应该用于处理进程之间的Pipe IO,但是除了管道STDIN/STDOUT之外,我找不到任何示例。

从我的阅读看来,我应该使用loop.connect_read_pipe(PROTOCOL_FACTORY, PIPE)注册管道,并同样进行写入。但是我不了解protocol_factory的目的,因为它与multiprocessing.Pipe有关。我是否应该创建multiprocessing.Pipe或是否可以在asyncio中创建管道,甚至还不清楚。

最佳答案

aiopipe 似乎可以满足您的要求!它可以与内置的multiprocessing模块一起使用,并提供与常规阻塞管道类似的API。

关于python - 我可以使用asyncio读取和写入multiprocessing.Pipe吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58720720/

10-12 20:17