Обратите внимание, что мне запрещено использовать Python 2.6. У меня есть приложение Python 2.6, которое использует многопоточную библиотеку API C++, созданную с помощью boost-python. Моим вариантом было просто выполнить обратный вызов функции Python из потока повышения C++, но, несмотря на множество разных попыток и исследование всех доступных онлайн-ресурсов, я не нашел никакого способа работы. Все предлагаемые решения вращаются вокруг различного сочетания функций: Py_Initialize*
, PyEval_InitThreads
, PyGILState_Ensure
, PyGILState_Release
, но после попытки всех возможных комбинаций ничего не действует на практике, например.Как я могу запустить поток Python FROM C++?
- Embedding Python in multi-threaded C++ applications с кодом here
- PyEval_InitThreads in Python 3: How/when to call it? (the saga continues ad nauseum)
Поэтому этот вопрос: как я могу начать и запустить Python нить от C++? Я в основном хочу: создать его, запустить его с помощью объекта целевой функции Python и забыть об этом.
Возможно ли это?
Может ли это создать новую работу? – otorrillas
Нет, мне нужно создать поток в процессе приложения интерпретатора, к которому я привязан. –