찾다

 >  Q&A  >  본문

다중 프로세스 - 3D 프린팅 소프트웨어 Printrun이 Python이 가장 잘 못하는 다중 스레딩 방법을 사용하는 이유는 무엇입니까?

최근 3D 프린터 프로젝트를 접했습니다. 두 가지 코드가 있습니다. 하나는 오픈 소스 Python printrun이고 다른 하나는 폐쇄 소스 C++이며 둘 다 멀티 스레딩을 사용합니다. C++에서는 이를 구현하기 위해 오픈 소스 mlib를 사용하는데, 이는 이해할 수 있습니다.

C++ 코드의 경우 각 컨트롤러는 스레드에 해당하는 위치, 온도, 노즐 등을 제어합니다. 하단 레이어는 동일한 USB/직렬 포트/CAN 버스를 통해 구현됩니다.

printrun이 C++ 코드와 같은 여러 컨트롤러 스레드를 구현하기 위해 멀티스레딩을 사용하는지, 아니면 단지 GUI와 직렬 포트 사이에서 멀티스레딩을 사용하는지 계속 확인 중입니다. 디자이너는 Python의 GIL이 스레드 성능에 영향을 미치는 것에 대해 걱정하지 않습니까?

또한 두 가지 옵션이 있습니다.

  1. C++ 코드를 RTOS, RT-Linux 및 기타 유사한 플랫폼 기반 드라이버로 포팅하세요.

  2. Python을 다중 프로세스로 변경하면 각 직렬 포트는 asynio의 비동기 방식을 사용하여 이벤트를 처리합니다.

이런 경험이 있는 학생들이 경험을 공유할 수 있기를 바랍니다.

天蓬老师天蓬老师2723일 전868

모든 응답(1)나는 대답할 것이다

  • 扔个三星炸死你

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

    IO 집약적 애플리케이션의 경우 GIL에 대해 걱정할 필요가 없습니다

    회신하다
    0
  • 취소회신하다