C/C++ アプリケーションへの Python インタープリターの埋め込みについては、十分に文書化されています。C/C++ アプリケーションから呼び出される複数のオペレーティング システム スレッド (つまり、同じプロセス内の 1 つのオペレーティング システム スレッドで 1 つのインタープリター) で複数の Python インタープリターを実行するための最良の方法は何ですか? このようなアプリケーションでは、メモリの断片化やPy_Finalize() の制限に関連する問題も発生する可能性があります。
そのようなアプローチの 1 つとして、次のようなものがあります。
- Python スレッド、したがって pyconfig.h で GIL を無効にして単純化 (#undef WITH_THREAD)
- Python インタープリター ソース コードの可変グローバル変数はすべて、スレッド ローカル ストレージを介して参照されるヒープ割り当て構造体に移動されました (参照: Python on a Phone )。
私の質問は次のとおりです。
- より良いアプローチはありますか?
- Python インタープリター ソース コードのグローバル変数を、TLS (スレッド ローカル ストレージ) 経由で参照されるヒープ割り当て構造体に自動変換できるツールはありますか?
同様のトピックがここで議論されています: