多进程编程

多线程与多进程的比较 这一篇中记录了多进程编程的一种方式.

下面记录一下多进程编程的别一种方式,即使用multiprocessing编程

import multiprocessing
import time


def get_html(n):
    time.sleep(n)
    print('sub process %s' % n)
    return n


if __name__ == '__main__':
    # 多进程编程
    process = multiprocessing.Process(target=get_html, args=(2,))
    process.start()
    print(process.pid)  # 进程号
    process.join()
    print('main process success!')

    # 使用多进程池编程
    pool = multiprocessing.Pool(multiprocessing.cpu_count())
    # result =pool.apply_async(get_html, (3,))
    # # 关闭pool
    # pool.close()
    # # 等待所有任务完成
    # pool.join()
    # print(result.get())

    # 使用imap方法, 有序执行,且直接返回结果值
    # for result in pool.imap(get_html, [1, 5, 3]):
    #     print('{} sleep success'.format(result))
    # pool.close()

    # imap_unordered 与imap相似,但是谁先执行完成,谁先返回结果
    # for result in pool.imap_unordered(get_html, [1, 5, 3]):
    #     print('{} sleep success'.format(result))
    # pool.close()
原文地址:https://www.cnblogs.com/z-qinfeng/p/12064092.html