python 在类里使用进程池
首先, 进程池的作用就是减少进程的创建和释放 开销的, 所以在类中作为局部变量是不合适的;
其次, 进程池必须在 if __name__ == "__main__" 里 ,否则会报 frozen_ 什么什么的错误;(这一点可能解释有误);
然后, 线程池的 apply_async 中如果传入 self.xxx 方法,会报 multiprocessing.Pool pickling error 什么的错误, 具体解释见 https://blog.csdn.net/dutsoft/article/details/70336462, 里面有解决方法,但是我没有成功(最开始测试没有现在理解的透彻, 不过应该是可以的); 由于第 1 点 不合理, 所以有什么办法在类 函数中获取 进程池对象 po 的地址:
我的解决思路和方法是:
通过 globals () 取得全局变量 , 测试证明 :不同文件的 globals() 是不同的: 如 Tab2.py 的 globals() 和 main_extra_func_file.py 中的 globa ...