gpt4 book ai didi

Python子进程问题

转载 作者:太空狗 更新时间:2023-10-30 03:08:07 25 4
gpt4 key购买 nike

我希望能够在 python 中生成一个进程并进行双向通信。当然,Pexpect 会这样做,而且确实是我可能会采用的一种方式。然而,它并不是很理想。

我的理想情况是拥有一种只涉及标准 python 库的跨平台通用技术。子进程非常接近,但我必须等待进程终止才能安全地与其交互这一事实是不可取的。

查看文档,它确实说有一个我可以直接操作的标准输入、标准输出和标准错误文件描述符,但是有一个很大的警告说“不要这样做”。不幸的是,它并不完全清楚为什么存在这个警告,但从我从谷歌收集的信息来看,它与操作系统缓冲有关,并且当这些内部缓冲区失败时,可能会编写意外死锁的代码(作为旁注,任何示例显示错误的方式和正确的方式将不胜感激)。

因此,冒着让我的代码陷入潜在死锁的风险,我认为使用 poll 或 select 以交互方式读取正在运行的进程而不杀死它可能会很有趣。虽然我失去了(我认为)跨平台能力,但我喜欢它不需要额外库的事实。但更重要的是,我想知道这是否是个好主意。我还没有尝试过这种方法,但我担心可能会破坏我的程序的陷阱。能行吗?我应该测试什么?

在我的具体情况下,我并不真正关心能否写入进程,只是反复从中读取。此外,我不希望我的进程转储大量文本,因此我希望避免死锁问题,但我想确切地知道这些限制是什么,并能够编写一些测试来查看它在哪里崩溃。

最佳答案

使用 multiprocessing Python 2.6 标准库中的模块。

它有一个 Queue class可用于阅读和写作。

关于Python子进程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1110804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com