Ram*_*hum 13 python user-interface user-experience multiprocessing
我正在开发一个用于处理计算机模拟的Python项目,我也在为它开发GUI.(核心逻辑本身不需要GUI.)我使用的GUI工具包是wxPython,但我认为我的问题很普遍,不依赖于它.
GUI当前工作的方式是它garlicsim
在与GUI相同的进程和相同的线程上启动核心逻辑包(被调用).这是有效的,但我理解这是一个有问题的方法,因为如果核心逻辑需要做一些硬计算,GUI将挂起,我认为这是不可接受的.
我该怎么办?
我听说过在GUI的单独进程上启动核心逻辑的选项.这听起来很有趣,但我对此有很多疑问.
multiprocessing
包或subprocess
包来启动新流程?您可能会在这里找到一些灵感:http://wiki.wxpython.org/LongRunningTasks,但它适用于多线程,而不是多处理.
基本的想法
您甚至可以通过套接字驱动I/O通信,这样可以轻松进行模拟的网络管理.
编辑:我刚看到你提到的2.6新多处理包.看起来不错,你可以使用队列在进程之间进行通信.这是一种更紧密的耦合,您可以根据您的需求进行选择.