使用嵌入在C ++中的Boost Python同时运行2个Python脚本

时间:2014-03-18 12:38:05

标签: python c++ multithreading concurrency boost-python

我使用Boost Python在C ++中嵌入Python。

我想同时运行2个Python脚本。脚本还应该有机会访问C ++成员函数。

好吧,当我在主解释器中只使用一个线程时,它可以使用成员函数。但是为了同时运行2个脚本,我为每个线程(http://docs.python.org/2/c-api/init.html#sub-interpreter-support)创建了一个新的解释器。因此脚本可以同时执行,但它们无法使用成员函数。

这只是一般问题。


PyThreadState* Py_NewInterpreter():

创建一个新的子解释器。这是一个(几乎)完全独立的Python代码执行环境。特别是,新的解释器具有所有导入模块的独立,独立版本,包括基本模块builtins, main 和sys。加载模块(sys.modules)和模块搜索路径(sys.path)的表也是分开的。新环境没有sys.argv变量。它有新的标准I / O流文件对象sys.stdin,sys.stdout和sys.stderr(但是它们引用相同的底层文件描述符)。

那么,是否有可能这样做?

0 个答案:

没有答案