python使用多进程

2021-06-23 09:05

阅读:542

标签: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()

python使用多进程

标签:print   多核   star   初始化   thread   基于   art   sync   multi   

原文地址:https://www.cnblogs.com/chenqionghe/p/9674596.html


评论


亲,登录后才可以留言!