Я делаю программу для запуска моделирования в Python с интерфейсом wxPython. В программе вы можете создать симуляцию, и программа отобразит (= вычисляет) ее для вас. Иногда рендеринг может быть очень трудоемким.Многопроцессорная или многопоточная обработка?
Когда пользователь запускает симуляцию и определяет начальное состояние, я хочу, чтобы программа постоянно отображала симуляцию в фоновом режиме, в то время как пользователь мог делать разные вещи в программе. Похоже на панель в стиле YouTube, которая заполняется: вы можете играть в симуляцию только до той точки, которая была визуализирована.
Должен ли я использовать несколько процессов или несколько потоков или что? Люди сказали мне использовать пакет multiprocessing
, я проверил его, и он выглядит неплохо, но я также слышал, что процессы, в отличие от потоков, не могут делиться большой информацией (и я думаю, что моя программа должна будет делиться большой информацией .) Кроме того, я также слышал о Stackless Python: это отдельный вариант? Понятия не имею.
Просьба сообщить.
Я беспокоюсь о вашем «Я думаю, что моя программа должна будет делиться большой информацией» - вы имеете в виду, что еще не знаете? Возможно, вам стоит больше работать над дизайном. Модуль многопроцессорности свободно совместим с модулем потоковой передачи, поэтому переключение не должно быть огромным усилием. Но будьте осторожны с GIL, который заставит меня поддержать многопроцессорность. – CyberFonic