【发布时间】:2015-07-15 12:02:17
【问题描述】:
python 中的多处理新手,请考虑您具有以下功能:
def do_something_parallel(self):
result_operation1 = doit.main(A,B)
do_something_else(C)
现在的重点是我希望doit.main 在另一个进程中运行并且是非阻塞,因此 do_something_else 中的代码将在第一个在另一个进程中启动后立即运行。
- 如何使用 python
subprocess模块做到这一点? - 子处理和创建新进程之间有区别吗?为什么我们需要其他进程的子进程?
注意:我不想在这里使用多线程方法..
编辑:我想知道是否禁止在同一个函数中使用subprocess module 和multiprocess module?
我想要这个的原因是我有两件事要运行:首先是一个 exe 文件,其次是一个函数,每个都需要它自己的进程。
【问题讨论】:
-
为什么不想使用多处理?如果要运行多个进程,请使用不会阻塞的 subprocess.Popen
-
我们是否可以选择将函数作为子进程运行,而不会阻塞?
-
您可以使用 subprocess.Popen 各种方式运行它们,但我真的认为多处理会是更好的方法
-
太好了,你能不能参考一下编辑部分,我想听听你的想法
-
这不是被禁止的,但是,如果你只是想让 Popen 读/写是异步的,那么多处理就有点过分了。对异步 IO 使用线程。如果你没有使用过 python 线程,那真的没那么糟糕。
标签: python linux python-2.7 multiprocessing subprocess