2011-06-15 93 views
7

我想从Python开始,一些其他的Python代码,最好是一个函数,但在另一个进程如何在另一个进程中运行一些Python代码?

由于我想运行一些并发测试,比如打开由父进程独占打开的文件(这必须失败),所以在另一个进程中运行它是强制性的。

要求:

  • 多平台:Linux操作系统,OSX,窗
  • 与Python兼容2.6-3.x
+0

可能重复[什么是在Windows中复制fork()的最佳方式?](http://stackoverflow.com/questions/23397/whats-the-best-way-to-duplicate-fork-in-windows ) – 2011-06-15 12:50:05

+2

@AJ是关于Windows的,这是关于Python的。我不明白它可能是如何重复的。 – wheaties 2011-06-15 12:54:50

回答

11

我会认真看一看的文档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() 

这是一个函数调用另一个进程中,从你在里面的过程分开正在做。再次,所有这些来自文档。

相关问题