Maison  >  Questions et réponses  >  le corps du texte

Multi-processus - Pourquoi le logiciel d'impression 3D Printrun utilise-t-il la méthode multi-threading pour laquelle Python est le moins bon ?

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 :

  1. Portez le code C++ vers un pilote basé sur RTOS, ou RT-Linux et d'autres plates-formes similaires.

  2. 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.

天蓬老师天蓬老师2686 Il y a quelques jours819

répondre à tous(1)je répondrai

  • 扔个三星炸死你

    扔个三星炸死你2017-06-12 09:25:41

    Pas besoin de vous soucier du GIL pour les applications intensives en io

    répondre
    0
  • Annulerrépondre