Python 不可拾取对象的多处理池()等价物

Python 不可拾取对象的多处理池()等价物,python,multithreading,multiprocessing,pickle,whoosh,Python,Multithreading,Multiprocessing,Pickle,Whoosh,短期 对于Python3中不可拾取的对象,是否有一个与多处理.Pool()的map函数等价的函数?还是我误解了这个错误 TypeError:无法pickle memoryview对象 Long 我有一个很大的索引(文本索引和搜索库),有时需要花时间进行查询 为了加快计算速度,我把它分成了5个不同的索引,这样我就可以用5个不同的过程来查询它们 我不想每次都重新打开索引,所以我想用一个打开的索引作为参数提供搜索函数。此对象不可拾取,因此我无法使用multiprocessing.Pool()的map

短期

对于Python3中不可拾取的对象,是否有一个与
多处理.Pool()
map
函数等价的函数?还是我误解了这个错误

TypeError:无法pickle memoryview对象


Long

我有一个很大的索引(文本索引和搜索库),有时需要花时间进行查询

为了加快计算速度,我把它分成了5个不同的索引,这样我就可以用5个不同的过程来查询它们

我不想每次都重新打开
索引
,所以我想用一个打开的
索引
作为参数提供搜索函数。此对象不可拾取,因此我无法使用
multiprocessing.Pool()
map
函数运行查询5个不同(打开)索引的5个进程

因此,我尝试了
multiprocessing.dummy.Pool()
来处理线程,但它似乎并没有真正加快计算速度

  • 我是否遗漏了一些东西,并且有更简单的方法来加速这些计算
  • 在Python3中,有没有一种方法可以对这种不可拾取的对象使用多个进程
  • 也许我误解了这个错误:
    TypeError:cannotpickle memoryview对象
相关:相关: