Incorporation de l'interpréteur Python dans un C/C++ application is well documented. Quelle est la meilleure approche pour exécuter plusieurs interpréteurs python sur plusieurs threads de système d'exploitation (c'est-à-dire un interpréteur sur un thread de système d'exploitation dans le même processus) qui sont invoqués à partir de l'application C/C++? Ces applications peuvent également avoir des problèmes liés à la fragmentation de la mémoire et limitations of Py_Finalize().Plusieurs interpréteurs Python intégrés indépendants sur plusieurs threads du système d'exploitation invoqués à partir du programme C/C++
Une telle approche peut être la suivante:
- fil Python et donc GIL désactivé dans pyconfig.h de rester simple (#undef WITH_THREAD)
- Toutes les variables globales mutables du code source interpréteur Python déplacé à la structure allouée par tas référencée via Thread Local Storage (Référence: Python on a Phone).
Mes questions sont les suivantes:
- Y at-il une meilleure approche?
- Existe-t-il des outils permettant d'automatiser la conversion des variables globales du code source de l'interpréteur Python en structure allouée par tas référencée via TLS (Thread Local Storage)?
Sujets similaires sont discutés ici:
- Multiple independent Python interpreters in a C/C++ program?
- Multiple python interpreters within the same process
- Lua Versus Python
L'ensemble des problèmes pour lesquels la solution optimale est constituée de plusieurs interpacteurs python intégrés est infiniment petit.Avant de dépenser trop d'efforts dans cette voie, je serais terriblement certain qu'une solution multi-processus et de transmission de messages est impraticable. – Rakis
Quand vous dites "OS", vous voulez probablement dire "processus"? Si c'est le cas, le shell '&' fait presque tout ce que vous voulez. Les systèmes d'exploitation fonctionnent généralement au niveau du processus. Si vous voulez dire "processus", veuillez corriger votre question. Si vous pensez vraiment que vous voulez dire "thread", veuillez clarifier pourquoi vous pensez que les threads OS sont si importants. –