python - 与 Windows 和 Unix 的子进程共享多个管道
问题描述
我目前有一个工作子进程,它为我的主应用程序做了很多处理。我的标准输入和标准输出已经在两者之间连接,但现在我需要的不仅仅是主应用程序和子进程工作者之间的这两个,因为子进程工作者线程繁重,应该能够同时运行多个不同的工作负载.
因此,对于每个工作负载,我想在主进程和子进程之间动态创建一个单独的管道。我不想在后台运行超过 1 个子进程工作者,并且希望一切都在单个子进程上运行。
我遇到的问题是在主进程和子进程之间创建命名管道,它可以在 Unix 和 Windows 上运行。Unix 有一个 os.mkfifo() 可以与临时文件一起使用,但这在 Windows 上不起作用。os.pipe() 将不起作用,因为分配的内存块仅用于主应用程序,我无法将其与子进程链接。
所以基本上,
tmp_read, tmp_write = os.pipe( )
对于 tmp_read 和 tmp_write,它们都表示为整数,或主应用程序堆栈上的内存块。我无法将这些整数发送到子进程并连接,因为子进程不知道它们的含义。我是否遗漏了什么,或者无法使用 IPC 在进程之间共享未定义数量的管道?我也不能将套接字用于 IPC,因为必须在其上运行的计算机受到严格限制,而且我不想处理阻塞的端口。
解决方案
推荐阅读
- python-3.x - 单元测试中的 AssertionError
- sql - Conversion issue from string to decimal in redshift
- php - Problem with joining three tables in Laravel
- c# - 在 SignalR Core 的 Hub 之外访问或注入 HubCallerContext
- android - How to set major and minor grid lines using Androidplot?
- animation - 如何使用 Three.js 动画系统为相机设置动画?
- android - 安卓。是否有进入默认应用页面的意图?
- json - 如何引用文件中的单个元素?
- python - How to connect a button with a function of an external class in PyQt?
- python - Change imported modules imports