标签:print 多核 star 初始化 thread 基于 art sync multi
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()
标签:print 多核 star 初始化 thread 基于 art sync multi
原文地址:https://www.cnblogs.com/chenqionghe/p/9674596.html