我需要在Python的进程之间进行通信,并且在每个进程中使用asyncio
进行并发网络IO。
目前,我在进程之间使用multiprocessing.Pipe
到send
和recv
大量数据,但是我在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/