Вложение интерпретатора Python в Приложение C/С++ хорошо документировано. Каков наилучший подход для запуска нескольких интерпретаторов python для нескольких потоков операционной системы (т.е. Один интерпретатор в одном потоке операционной системы в рамках одного процесса), который вызывается из приложения C/С++? Такие приложения могут также иметь проблемы, связанные с фрагментацией памяти, и ограничения Py_Finalize().
Одним из таких подходов может быть следующее:
- поток Python и, следовательно, GIL отключен в pyconfig.h, чтобы он был простым (#undef WITH_THREAD)
- Все изменяемые глобальные переменные исходного кода Python интерпретатора переехал в куче выделено структуры ссылочного через Thread Local Storage (Код: Python на телефон).
Мои вопросы:
- Есть ли лучший подход?
- Существуют ли какие-либо инструменты, которые могут автоматизировать преобразование глобальных переменных исходного кода Python Interpreter в выделенную кучу структуру, указанную через TLS (Thread Local Storage)?
Похожие темы обсуждаются здесь: