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