Heim  >  Fragen und Antworten  >  Hauptteil

Multiprozess – Warum verwendet die 3D-Drucksoftware Printrun die Multithreading-Methode, in der Python am wenigsten gut ist?

Ich bin kürzlich auf ein 3D-Druckerprojekt gestoßen. Es gibt zwei Codes, einen Open-Source-Python-Printrun und einen Closed-Source-C++, die beide Multithreading verwenden. C++ verwendet zur Implementierung die Open-Source-MLIB, was ich verstehen kann.

Was den C++-Code betrifft, steuert jeder Controller Position, Temperatur, Düse usw. entsprechend einem Thread. Die unterste Ebene wird über denselben USB-/seriellen Port-/CAN-Bus implementiert.

Ich überprüfe immer noch, ob printrun Multithreading verwendet, um mehrere Controller-Threads wie C++-Code zu implementieren, oder ob es sich nur um Multithreading zwischen der GUI und dem seriellen Port handelt. Machen sich Designer keine Sorgen darüber, dass Pythons GIL die Thread-Leistung beeinträchtigt?

Außerdem habe ich zwei Möglichkeiten:

  1. Portieren Sie den C++-Code auf einen Treiber, der auf RTOS oder RT-Linux und anderen ähnlichen Plattformen basiert.

  2. Ändern Sie Python auf Multiprozess, und jeder serielle Port verwendet die asynchrone Methode von Asynio, um Ereignisse zu verarbeiten.

Ich hoffe, dass Studierende, die solche Erfahrungen gemacht haben, ihre Erfahrungen teilen können.

天蓬老师天蓬老师2707 Tage vor851

Antworte allen(1)Ich werde antworten

  • 扔个三星炸死你

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

    io密集型应用不用担心GIL

    Antwort
    0
  • StornierenAntwort