码迷,mamicode.com
首页 > 编程语言 > 详细

python使用多进程

时间:2018-09-19 16:10:32      阅读:200      评论:0      收藏:0      [点我收藏+]

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!