跨解释器传递python对象

时间:2011-04-19 08:27:27

标签: python multithreading

我想在两台兼容(和不同)机器上工作的python解释器之间交换对象。

是否有机制实现同样的目标?

〜维杰

更具体一点: 我在相同(和不同)的机器上运行的进程很少。这些过程中很少产生其他过程消耗的对象。我正试图解决这些过程中的生产者/消费者问题。

我以前在与线程相同的python解释器上运行这些进程,并且能够使用队列来解决生产者 - 消费者问题。但是由于负载增加,我决定将一些流程转移到其他机器上。现在驻留在不同机器(和解释器)上的这些进程需要共享对队列的访问。我想知道是否有一种机制可以帮助我有效地做到这一点。

我可以编写一个管理队列的类,并使用套接字处理来自其他进程的对象。

我认为如果想要使用python来处理大量数据,这是一个常见问题。 因此,我有兴趣知道是否还有其他更优雅的解决方案。

〜维杰

2 个答案:

答案 0 :(得分:5)

使用Python的pickle模块来序列化/反序列化对象状态:

http://docs.python.org/library/pickle.html

答案 1 :(得分:5)

通常,您需要序列化对象。在Python中,这意味着pickle和unpickle。你可以在一边腌制一个物体,以某种方式将它转移(插座等),然后将它取下来。使用picklecPickle模块。

Pyro包是一个完整的包,以透明的方式执行此操作。