环境:win 7+spyder2.38+py3.5
这几天在写个使用 multiprocessing 调用 Pool 进程池的程序,原本使用函数的方式,一切正常。后来改成了 class的方式,就一直出问题,排查后发现如果在类中 使用了 自己定义的 import 的包中的类/函数/方法,然后多进程调用的方法中如果使用了这些,就会导致cpu高占用,但是程序并没有报错,最后测试使用如下的程序是可以的。
TIPS:
- 这种方法太丑陋,貌似如果要自定义使用多进程的类,应该是继承 multiprocessing类,应该是有优美一些的方法,后面有时间再研究一下;
- 使用多进程,一定要在非多进程的环境下先调试确认,多进程很多时候程序有问题,却不报错或者报的错误信息很难把握。