Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将multiprocessing.mangers.BaseManager子类使用的序列化程序更改为cPickle?_Python_Multiprocessing_Pickle_Serialization - Fatal编程技术网

Python 如何将multiprocessing.mangers.BaseManager子类使用的序列化程序更改为cPickle?

Python 如何将multiprocessing.mangers.BaseManager子类使用的序列化程序更改为cPickle?,python,multiprocessing,pickle,serialization,Python,Multiprocessing,Pickle,Serialization,使用Python 2.7 我使用从multiprocessing.managers派生的管理器跨进程传递许多大型对象BaseManager我想使用cPickle作为序列化程序来节省时间;如何做到这一点?我看到BaseManager初始值设定项接受了一个序列化程序参数,但唯一的选项似乎是pickle和xmlrpclib,看起来你不能严格按照你的要求去做 事实上,有一个多处理分支,是由pickle替代品的创建者编写的,这也是因为控制序列化程序的能力有限 我个人建议您使用ipython.paralle

使用Python 2.7


我使用从multiprocessing.managers派生的管理器跨进程传递许多大型对象
BaseManager
我想使用
cPickle
作为序列化程序来节省时间;如何做到这一点?我看到BaseManager初始值设定项接受了一个
序列化程序
参数,但唯一的选项似乎是
pickle
xmlrpclib
,看起来你不能严格按照你的要求去做

事实上,有一个多处理分支,是由pickle替代品的创建者编写的,这也是因为控制序列化程序的能力有限

我个人建议您使用ipython.parallel,因为它似乎更积极地维护


在这篇文章中可以看到更多关于这个问题的细节。

我是《莳萝与悲情》的作者。默认情况下,多处理应该使用cPickle,因此您不必做任何事情

如果您的对象没有Searlize,您有两个选择:转到多处理分支或其他并行后端,或者向类中添加注册如何序列化对象的方法(即reduce方法)