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使用多进程的主要内容,如果未能解决你的问题,请参考以下文章

[Python3] 043 多线程 简介

python中的多线程和多进程编程

代码片段:Shell脚本实现重复执行和多进程

线程学习知识点总结

什么是多线程,多进程?

多线程编程