【发布时间】:2023-03-22 07:02:01
【问题描述】:
我有一个用 C++ 编写的 boost::python 应用程序。这段代码被编译成一个二进制文件,其中还包括 Python 解释器。然后使用导入 C++ 模块的 Python 脚本调用二进制文件:
./c++executable script.py
现在我想使用 Python 线程并行化代码:在 Python 代码中,我想创建线程,然后(除其他外)调用用 C++ 编写的函数。
但是,我无法找到有关 python 线程使用的内存布局的信息:
是每个线程都有自己定义的内存段来使用,还是不同的线程会尝试在同一个内存段中分配内存?
如果每个线程都有自己的(深拷贝)C++ 对象,线程之间会不会有任何干扰?
这在 Linux 操作系统上运行。
应用程序使用-lpthread 标志编译,如果这有区别的话。
如果有人能对这些问题有所了解,我将不胜感激。
【问题讨论】:
-
Python 线程的内存模型将类似于宿主线程库的内存模型。使用 CPython 实现,请注意不会获得 Python 代码的并行执行。
标签: python c++ multithreading boost-python