cari

Rumah  >  Soal Jawab  >  teks badan

Berbilang proses - Mengapakah perisian pencetakan 3D Printrun menggunakan kaedah berbilang benang yang Python kurang mahir?

Saya baru-baru ini menjumpai projek pencetak 3D Terdapat dua kod, satu adalah open source Python printrun, dan satu lagi adalah sumber tertutup C++, yang kedua-duanya menggunakan multi-threading. C++ menggunakan mlib sumber terbuka untuk melaksanakannya, yang saya boleh fahami.

Mengenai kod C++, setiap pengawal mengawal kedudukan, suhu, muncung, dll., sepadan dengan benang. Lapisan bawah dilaksanakan melalui USB/port bersiri/bas CAN yang sama.

Saya masih menyemak sama ada printrun menggunakan multi-threading untuk melaksanakan berbilang benang pengawal seperti kod C++, atau adakah ia hanya multi-threading antara GUI dan port bersiri. Tidakkah pereka bimbang tentang GIL Python yang menjejaskan prestasi benang?

Selain itu, saya ada dua pilihan:

  1. Pindahkan kod C++ ke pemacu berdasarkan RTOS, atau RT-Linux dan platform lain yang serupa.

  2. Tukar Python kepada berbilang proses, dan setiap port bersiri menggunakan kaedah tak segerak asynio untuk mengendalikan acara.

Saya harap pelajar yang mempunyai pengalaman sedemikian dapat berkongsi pengalaman mereka.

天蓬老师天蓬老师2800 hari yang lalu918

membalas semua(1)saya akan balas

  • 扔个三星炸死你

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

    Tidak perlu risau tentang GIL untuk aplikasi intensif io

    balas
    0
  • Batalbalas