我们正在考虑重构一个具有复杂 GUI 的大型应用程序,该 GUI 以与后端分离的方式隔离,以使用新的 (Python 2.6) 多处理模块。GUI/后端接口使用具有双向交换消息对象的队列。
我刚刚总结的一件事(暂定,但随时确认)是“对象身份”不会在多处理接口中保留。目前,当我们的 GUI 向后端发布消息时,它希望返回相同的消息,并将结果作为属性附加。在某些情况下,它使用对象标识 ( if received_msg is message_i_sent:
) 来识别返回的消息……这似乎不适用于多处理。
这个问题是问你在实际使用中看到过什么“陷阱”,或者可以想象在天真地使用多处理模块时会遇到什么“陷阱”,尤其是在重构现有的单进程应用程序时。请说明您的回答是否基于实际经验。为问题提供可用解决方法的奖励积分。
编辑:虽然我提出这个问题的目的是收集一般问题的描述,但我认为我犯了两个错误:我从一开始就将其设为社区 wiki(这可能会让很多人忽略它,因为他们不会获得声誉积分) ,并且我包含了一个过于具体的示例——虽然我很欣赏这些答案——但可能让很多人错过了一般回复的请求。我可能会在一个新问题中重新措辞并重新提出这个问题。目前,我最好接受一个答案,以结束与我所包含的具体示例相关的问题。感谢那些回答的人!