Python多处理共享变量列表无法追加

时间:2016-10-27 21:15:28

标签: python multiprocessing

我正在尝试使用Python进行多处理,并且需要在所有实例之间共享一个变量。 要共享的变量是一个列表,它通过附加一些用户定义的类

来存储类型的变量
<class 'output_handlers.email_output_handler.email_output_handler'>
<class 'output_handlers.dw_output_handler.dw_output_handler'>
从print(type(var))看到的

我尝试使用Manager将相同的变量附加到它生成的列表中,然后再将其传递给线程:

from multiprocessing import Manager
...
man = Manager()
output_handlers = man.list()
output_handlers.append(variable)

以上产生错误TypeError: cannot serialize '_io.TextIOWrapper' object,即使它可以附加简单类型,如整数和字符。 试图做

tmp = []
tmp.append(variables)
output_handlers = man.list(tmp)

也会产生同样的错误。

我还想使用multiprocessing.Value()显式地使列表可共享,但我从未找到列表的ctype代码

任何人都可以帮忙解决这个问题吗?

0 个答案:

没有答案