多处理池()等效于非可选对象

时间:2017-08-01 13:54:54

标签: python multithreading multiprocessing pickle whoosh

对于python 3中的不可拾取对象,是否有等效于multiprocessing.Pool()的{​​{1}}函数?或者我误解了这个错误? :

  

TypeError:无法pickle memoryview对象

我有一个很大的whoosh索引(文本索引和搜索库),有时需要时间来查询。

因此,为了加快计算速度,我将其拆分为5个不同的索引,以便我可以使用5个不同的进程查询它们。

我不想每次都重新打开map所以我想以打开的index作为参数来提供我的搜索功能。此对象不可选,因此我无法使用index的{​​{1}}函数来运行查询5个不同(已打开)索引的5个进程。

因此我尝试multiprocessing.Pool()使用线程完成工作,但它似乎并没有真正加快计算速度。

  • 我在这里遗漏了什么,有一种更简单的方法来加速这种计算吗?
  • 在Python 3中是否有一种方法可以为这些不可选择的对象使用多个进程
  • 也许我误解了这个错误:map

0 个答案:

没有答案