我有一个 C 程序,我在其中调用 Linux 机器上的嵌入式 Python 模块,使用:
Py_Initialize();
PyObject_CallFunction(PyFun)
Py_Finalize();
我的问题是:python 函数是否仍会与 C 函数在同一线程中运行?我该如何检查?
我在 python 中使用 thread.get_ident()
并在 C 中使用 pthread_self()
来打印线程 ID。但我不确定它们是否意味着同一件事。
最佳答案
我尝试在 Python 模块执行期间从包装的 C 函数打印 pthread_self()。 1. 等同于在调用python模型之前调用pthread_self()。 2. python中的两个pthread_self()不等于thread.get_ident()。
所以我猜 1.在同一个线程中。 2. pthread_self() 和thread.get_ident() 有很大的不同。
关于python - 调用嵌入式Python模块时,是否切换了线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32511737/