Я разрабатываю Python project для работы с компьютерными симуляторами, и я также разрабатываю для него графический интерфейс. (Сама логика ядра не требует графического интерфейса.) Инструмент GUI, который я использую для wxPython, но я думаю, что мой вопрос достаточно общий, чтобы не зависеть от него.Python: разделение процесса графического интерфейса от основного логического процесса
Способ, которым в настоящее время работает графический интерфейс, заключается в том, что он запускает основной пакет логики (называемый garlicsim
) в том же процессе и в том же потоке, что и графический интерфейс. Это работает, но я понимаю, что это проблематичный подход, потому что, если основной логике нужно делать какие-то жесткие вычисления, GUI будет зависать, что я считаю неприемлемым.
Что мне делать?
Я слышал о возможности запуска основной логики в отдельном процессе из графического интерфейса. Это звучит интересно, но у меня есть много вопросов об этом.
- Я использую
multiprocessing
пакет илиsubprocess
пакет для запуска нового процесса делать? - Как мне легко получить доступ к данным моделирования из процесса GUI? В конце концов, он будет сохранен на другом процессе. Пользователь должен иметь возможность просматривать график времени моделирования легко и плавно. Как это может быть сделано?
Пакет 'subprocessing' Я думаю, вы имеете в виду подпроцесс, верно? – Kylotan
@ Kylotan: да, исправлено, спасибо – ron