您遇到的问题是由于使用CSVWorker类的方法作为过程目标而导致的。该班的成员不能被腌制;这些打开的文件永远都无法使用;
您想要做的就是将该课程分为两类。一个协调所有工作程序子过程,另一个实际执行计算工作。工作进程将文件名作为参数并根据需要打开各个文件,或者至少等到它们被调用其工作方法并打开文件之后再打开。他们还可以将
multiprocessing.Queues作为参数或作为实例成员;可以安全通过。
在某种程度上,您已经可以这样做了。您的
write_output_csv方法正在子进程中打开文件及其文件,但是您的
parse_input_csv方法希望找到已经打开并准备好的文件作为属性
self。始终以其他方式进行 *** 作,您应该处于良好状态。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)