速度比较使用多处理过程与子流程.Popen

2024-04-19 04:26:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python3来执行PYQT代码;同时,我需要调用Python2.7代码来执行我不能通过Python3执行的操作。在

我确实通过Popen实现了2.7代码的执行;尽管从Popen调用时,运行2.7代码需要相当长的时间。如果我直接从Python2.7运行它,同样的操作会执行得更快。在

是否可以使用multiprocessing而不是{}来加速2.7代码的执行? 如果合适的话,从multiprocessing.Process调用Python2.7代码的正确方法是什么?或者,由于我只执行一个操作,所以使用多进程是浪费吗?在


Tags: 方法代码进程时间浪费multiprocessingprocesspyqt
1条回答
网友
1楼 · 发布于 2024-04-19 04:26:15

multiprocessing与{}相似,仅在不能fork进程的非POSIX系统上,因此理论上,您可以删除{}以使用不同的解释器。这将比它的价值更麻烦,因为在这一点上,在生成subprocess和使用multiprocessing.Process之间不会得到任何性能提升(事实上,由于multiprocessing.Process增加了通信开销,它可能会结束得更慢)。在

所以,如果我们只讨论一个需要在不同的解释器中执行的任务,这是最快的了。如果有多个任务要在不同的解释器中执行,您仍然可以从multiprocessing.Process中获益,方法是生成一个子进程来运行不同的解释器,然后在其中使用multiprocessing将多个任务分布到核心上。在

相关问题 更多 >