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.')
  • 相关阅读:
    2017 《Java》预备作业计科1502宋奇蕊
    在 Kubernetes 上调度 GPU 资源
    ceph
    网络设备的 38 个知识点
    CF1066 ABCD
    单调队列优化动态规划
    对拍
    【关于此博客】
    使用Morphia框架操作mongodb
    通过mybatis读取数据库数据并提供rest接口访问
  • 原文地址:https://www.cnblogs.com/mentiantian/p/10407365.html
Copyright © 2011-2022 走看看