Maison > Questions et réponses > le corps du texte
Je suis récemment tombé sur un projet d'imprimante 3D. Il existe deux codes, l'un est un printrun Python open source et l'autre est un C++ open source, qui utilisent tous deux le multithreading. C++ utilise le mlib open source pour l'implémenter, ce que je peux comprendre.
En ce qui concerne le code C++, chaque contrôleur contrôle la position, la température, la buse, etc., correspondant à un thread. La couche inférieure est mise en œuvre via le même port USB/série/bus CAN.
Je vérifie toujours si printrun utilise le multi-threading pour implémenter plusieurs threads de contrôleur comme le code C++, ou s'il s'agit simplement du multi-threading entre l'interface graphique et le port série. Les concepteurs ne s'inquiètent-ils pas du fait que le GIL de Python affecte les performances des threads ?
De plus, j'ai deux options :
Portez le code C++ vers un pilote basé sur RTOS, ou RT-Linux et d'autres plates-formes similaires.
Changez Python en multi-processus et chaque port série utilise la méthode asynchrone d'asynio pour gérer les événements.
J'espère que les étudiants qui ont vécu une telle expérience pourront partager leur expérience.
扔个三星炸死你2017-06-12 09:25:41
Pas besoin de vous soucier du GIL pour les applications intensives en io