python使用多进程
Posted 无涯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python使用多进程相关的知识,希望对你有一定的参考价值。
python多线程适合IO密集型场景,而在CPU密集型场景,并不能充分利用多核CPU,而协程本质基于线程,同样不能充分发挥多核的优势。
针对计算密集型场景需要使用多进程,python的multiprocessing与threading模块非常相似,支持用进程池的方式批量创建子进程。
示例代码:
import os import random import time from multiprocessing import Pool from time import ctime def task(name): print(‘start task %s (%s)...‘ % (name, os.getpid())) start = time.time() time.sleep(random.random() * 3) print(‘end task %s runs %0.2f seconds.‘ % (name, (time.time() - start))) if __name__ == ‘__main__‘: print(‘parent process %s.‘ % os.getpid()) p = Pool() # 初始化进程池 for i in range(5): p.apply_async(task, args=(i,)) # 追加任务 p.close() p.join() # 等待所有结果执行完毕 print(f‘all done at: {ctime()}‘)
注意:join()方法会等待所有子进程执行完毕,调用join()之前必须先调用close()
以上是关于python使用多进程的主要内容,如果未能解决你的问题,请参考以下文章