如何在另一个进程中运行一些Python代码?
问题描述:
我想从Python开始,一些其他的Python代码,最好是一个函数,但在另一个进程。如何在另一个进程中运行一些Python代码?
由于我想运行一些并发测试,比如打开由父进程独占打开的文件(这必须失败),所以在另一个进程中运行它是强制性的。
要求:
- 多平台:Linux操作系统,OSX,窗
- 与Python兼容2.6-3.x
答
我会认真看一看的文档multiprocessing库的Python 。从程序包描述的第一句开始:
multiprocessing是一个程序包,它支持使用类似于线程模块的API的生成进程。
然后继续说,它会对GIL进行旁路,这听起来就像你试图避免的那样。看到自己的一个简单的一套例子了:
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
这是一个函数调用另一个进程中,从你在里面的过程分开正在做。再次,所有这些来自文档。
可能重复[什么是在Windows中复制fork()的最佳方式?](http://stackoverflow.com/questions/23397/whats-the-best-way-to-duplicate-fork-in-windows ) – 2011-06-15 12:50:05
@AJ是关于Windows的,这是关于Python的。我不明白它可能是如何重复的。 – wheaties 2011-06-15 12:54:50