我正在尝试使用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代码
任何人都可以帮忙解决这个问题吗?