어떻게하면 메인 스레드에서 실행중인 프로그램의 데이터를 사용하여 실시간으로 업데이트되는 두 개의 플롯을 그릴 수 있습니까?메인 스레드를 사용하거나 블로킹하지 않고 어떻게 여러 개의 실시간 플롯을 그릴 수 있습니까?
나는 PyQTGraph에 의 QApplication 클래스를 사용하려고하지만 QApplication.exec() 기능 블록 메인 프로그램 실행도는 스레드에서 실행할 수 있습니다. 이 세 가지 질문에 대한
답변이 도움이 될 수 있습니다 :
1) 거기에 또 다른 파이썬 시각화 객체를 그릴 메인 스레드를 사용해야하지만, 실시간으로 그래프를 그릴 수있을만큼 빨리하지 않습니다/API 라이브러리?
2) 파이썬의 다중 처리 기능을 사용하면 어떻게 될까요? 방금 스레딩을 배웠으므로 다중 처리가 어렵습니다. 주 프로그램과 그래프를 업데이트하는 다른 처리간에 데이터를 전달하는 데 필요한 코드 줄은 무엇입니까?
3) 다중 프로세스는 주 프로세스에서 한 프로세스의 실시간 플롯을 업데이트 할만큼 충분히 빠릅니까?
사전에 도움을 주셔서 감사합니다.
다중 처리가 유일한 옵션입니다. is가 빠름 여부는 데이터 속도 (플롯 데이터), 한 번에 표시 할 지점 수, 그래프 업데이트 빈도 및 PC 속도에 따라 다릅니다. pyqtgraph는 올바르게 기억한다면 다중 처리 지원을 내장하고 있습니다. 예제 애플리케이션의 예제 중 하나에서 시연 된 것 같습니다. –
파이썬 길 (GIL)은 한 번에 하나의 스레드 만 실행하도록 보장하기 때문에 멀티 프로세싱이 유일한 옵션입니다. 그리고 모든 Qt 기반의 그래프 라이브러리는 어쨌든 주 스레드에 그려야합니다. –
응답 해 주셔서 감사합니다. 그것은 다중 처리를 사용해야한다는 나의 직감을 확인합니다. 더 쉬운 방법이 없다면 프로세스 간 통신을 위해 소켓을 사용할 계획입니다. – mago3421