在C++中調用Python代碼可以使用Python的C API來實現。下面是一個簡單的示例,展示了如何在C++中使用多線程并發調用Python代碼:
#include <Python.h>
Py_Initialize();
PyEval_InitThreads(); // 初始化Python線程支持
PyGILState_STATE gstate;
gstate = PyGILState_Ensure(); // 獲取全局解釋器鎖
PyRun_SimpleString("print('Hello from Python!')"); // 在Python中執行代碼
PyGILState_Release(gstate); // 釋放全局解釋器鎖
Py_Finalize();
這樣就可以在C++中使用多線程并發調用Python代碼了。需要注意的是,Python的全局解釋器鎖(GIL)限制了同一時間只能有一個線程執行Python字節碼,因此在多線程情況下,只有一個線程能夠執行Python代碼。如果需要更多的并行性,可以考慮使用其他方法,如使用多個進程調用Python等。