最近在研究如何提升python程序性能的问题(本身是个伪命题),使用了多线程,速度比之前还慢,后续又采用进程池,但是进程池遇到的坑,我只能说python很傻逼!
1、python 自带的 multiprocessing , 涉及序列化问题,要升级到pathos的multiple包
pip install dill
pip install pathos
2、多进程还涉及日志打印问题
要采用多进程打日志组件
pip install concurrent-log-handler
3、最最重要的 就是在子进程中导入进程需要依赖的包
4、检测子进程是否结束 也需要自定义方法,如下:
def check_multi_process_done(self, res):
is_done = False
loop_count = 0
done_count = 0
while (not is_done):
loop_count += 1
is_done = True
undone_count = 0
for job in res:
try:
is_ready = job.ready()