如何在另一个进程中运行Python代码?
我想从Python中启动一些其他的Python代码,最好是一个函数,但要在另一个进程中运行。
必须在另一个进程中运行,因为我想进行一些并发测试,比如打开一个已经被父进程独占打开的文件(这应该会失败)。
要求:
- 支持多种平台:Linux、OSX、Windows
- 兼容Python 2.6到3.x的版本
相关问题:
1 个回答
23
我建议你认真看看Python的multiprocessing库的文档。从这个库的描述第一句话就可以了解到:
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()
这个示例展示的是在一个与当前进程不同的进程中调用一个函数。再次强调,这些都是来自文档的内容。