我正在使用python3执行pyqt代码;同时,我需要致电Python2.7代码,以进行无法通过Python3执行的操作。
我确实通过Popen
实现了2.7代码执行;尽管从Popen
调用时,运行2.7代码需要大量时间。如果我直接从python2.7。
可以将multiprocessing
而不是subprocess.Popen
用于相同的目的,以加快2.7代码的执行?如果那是合适的;从multiprocessing.Process
调用Python2.7代码的正确方法是什么?还是使用多流程,因为我只执行一个操作?
multiprocessing
仅在无法 fork 过程的非Posix系统上类似于subprocess
,因此从理论上讲,您可以使用multiprocessing
来使用其他解释器。这将比它的价值更大,因为那时您在产卵subprocess
和使用multiprocessing.Process
之间不会获得任何性能的提高(实际上,由于添加到multiprocessing.Process
中的通信开销,它可能会降低速度较慢)。
因此,如果我们只谈论必须在另一个解释器中执行的单个任务,那么这就是您所能获得的快速。如果要在其他解释器中执行多个任务,则您仍然可以通过产生单个子过程来运行不同的解释器,然后在其中使用multiprocessing
来从multiprocessing.Process
中受益。