Heim > Fragen und Antworten > Hauptteil
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:
Portieren Sie den C++-Code auf einen Treiber, der auf RTOS oder RT-Linux und anderen ähnlichen Plattformen basiert.
Ä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.