在解释蟒蛇多池断言错误(python multiprocessing pool Assertion

2019-07-29 04:25发布

我写一个示例程序来测试在python多处理工人池的使用量2.7.2+

这是我用Python解释器的ubuntu的代码

>>> from multiprocessing import Pool
>>> def name_append(first_name,last_name):
...     return first_name+" "+last_name
...

>>> from functools import partial
>>> partial_name_append=partial(name_append,'kiran')
>>> partial_name_append('acb')
'kiran acb'
>>> abc='kiran'

>>> pool=Pool(processes=4)
>>> pool.map(partial_name_append,abc)
['kiran k', 'kiran i', 'kiran r', 'kiran a', 'kiran n']
>>> pool.close()
>>> pool.join()

>>> pool.map(partial_name_append,abc)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 226, in map
    assert self._state == RUN
AssertionError

之后,我得到了泡菜的错误,在我的工作人员的代码库的大型数据集,我试图做的小例子,并试图弄清楚什么是错误。

我不明白为什么同样的语句“pool.map”不工作,当它上面的工作。 我想我已经正确地执行了“池图”,但我不明白其中的道理。

这个错误是与“PicklingError:无法咸菜:属性查找内置 。功能失败”

有人可以帮我吗 ?

谢谢

Answer 1:

您键入:

>>> pool.close()

从文档:

关()

被提交到池中防止任何更多的任务。 一旦所有的任务已经完成了工作进程将退出。

当然,你不能使用游泳池了,你关闭它。



文章来源: python multiprocessing pool Assertion Error in interpreter