zoukankan      html  css  js  c++  java
  • python——多进程学习

    # multiprocessing包是Python中的多进程管理包。与threading.Thread类似,它可以利用multiprocessing.Process对象来创建一个进程。
    # 进程池 (Process Pool)可以创建多个进程。
    # apply_async(func,args)  从进程池中取出一个进程执行func,args为func的参数。它将返回一个AsyncResult的对象,你可以对该对象调用get()方法以获得结果。
    # close()  进程池不再创建新的进程
    # join()   wait进程池中的全部进程。必须对Pool先调用close()方法才能join。
    # 阻塞当前进程,直到调用join方法的那个进程执行完,再继续执行当前进程。
    
    from multiprocessing import Pool
    import os, time
    
    def long_time_task(name):
        print ('Run task %s (%s)...' % (name, os.getpid()))
        start = time.time()
        time.sleep(3)
        end = time.time()
        print ('Task %s runs %0.2f seconds.' % (name, (end - start)))
    
    if __name__=='__main__':
        print ('Parent process %s.' % os.getpid())
        p = Pool()
        for i in range(4):
            p.apply_async(long_time_task, args=(i,))
        print ('Waiting for all subprocesses done...')
        p.close()
        p.join()
        print ('All subprocesses done.')
  • 相关阅读:
    8月4日
    8月3日 hive配置
    8月2日
    8月1日
    7月31日
    7月30日
    7月29日
    7月28日
    第六周总结
    重大技术需求进度报告一
  • 原文地址:https://www.cnblogs.com/mentiantian/p/10407365.html
Copyright © 2011-2022 走看看