Мне нужно общаться между процессами в Python, и я использую asyncio
в каждом из процессов для параллельного сетевого ввода-вывода.
В настоящее время я использую multiprocessing.Pipe
до send
и recv
значительнобольшие объемы данных между процессами, однако я делаю это за пределами asyncio
, и я считаю, что из-за этого я трачу много времени на процессоры на IO_WAIT
.
Кажется, что asyncio
можети должен использоваться для обработки конвейерного ввода-вывода между процессами, однако я не могу найти пример для чего-либо, кроме конвейерной передачи STDIN / STDOUT.
Из того, что я прочитал, кажется, что я должен зарегистрировать канал с помощью loop.connect_read_pipe(PROTOCOL_FACTORY, PIPE)
и аналогично для записи. Однако я не понимаю цели protocol_factory
, поскольку это относится к multiprocessing.Pipe
. Даже не ясно, должен ли я создавать multiprocessing.Pipe
или я могу создать трубу в asyncio
.