Ich mache ein Programm zum Ausführen von Simulationen in Python, mit einer wxPython-Schnittstelle. Im Programm können Sie eine Simulation erstellen, die das Programm für Sie rendert (berechnet). Rendering kann manchmal sehr zeitaufwendig sein.Multiprocessing oder Multithreading?
Wenn der Benutzer eine Simulation startet und einen Anfangszustand definiert, möchte ich, dass das Programm die Simulation kontinuierlich im Hintergrund rendert, während der Benutzer möglicherweise verschiedene Dinge im Programm ausführt. So ähnlich wie eine YouTube-Leiste, die voll ist: Sie können die Simulation nur bis zu dem Punkt abspielen, der gerendert wurde.
Sollte ich mehrere Prozesse oder mehrere Threads verwenden oder was? Die Leute sagten mir, ich solle das Paket multiprocessing
verwenden, ich habe es überprüft und es sieht gut aus, aber ich habe auch gehört, dass Prozesse im Gegensatz zu Threads nicht viele Informationen teilen können (und ich denke, dass mein Programm viele Informationen teilen muss) .) Außerdem habe ich auch von Stackless Python gehört: Ist das eine separate Option? Ich habe keine Ahnung.
Bitte beraten.
Ich mache mir Sorgen um Ihr "Ich denke, dass mein Programm eine Menge Informationen teilen muss" - Sie meinen, Sie wissen es noch nicht ?? Vielleicht solltest du mehr Designarbeit leisten. Das Multiprocessing-Modul ist locker mit dem Threading-Modul kompatibel, daher sollte das Umschalten kein großer Aufwand sein. Aber hüte dich vor GIL, was mich zu Multiprocessing machen würde. – CyberFonic