• 进程池pool


    如果有多个进程,同一时间只能有限个给cpu运行

    from multiprocessing import Process,Pool
    import time,os
    def bar(arg):
        print(arg[0],arg[1])  #返回的是元组参数
        print("process done...",arg,os.getpid())  #进程ID跟主进程 一样
    def f(i):
        time.sleep(2)
        print("hello,world",i)
        return i,os.getpid()
    if __name__ == '__main__':
        pool = Pool(3)
        print("主进程PID:",os.getpid())
        for i in range(10):
            #pool.apply(func=f,args=(i,))  #这是同步执行进程变串行了
            pool.apply_async(func=f,args=(i,),callback=bar)  #注意callback是叫回调函数,
            # 作用是每一个pool中的进程执行完成后,把返回值传给回调函数,bar再执行,这里bar一定不要带参数,会出错
            #可用在备份数据,完后写入一条记录,因为它是主进程调用执行的,所以节约代码和时间
        pool.close()       #close 在 join之前,一定要一起用,作用等待每个进程执行完
        pool.join()
        print("end...")
    

      ...

  • 相关阅读:
    写Log日志的方法 减少插件引用
    操作文件常用的方法
    Git常用命令
    JS
    js
    BUG++
    mysql点滴记录 二 (MySql经典练习题)
    mysql点滴记录 一 (创建表结构 & 构建测试数据)
    TCPDF
    Docker-命令
  • 原文地址:https://www.cnblogs.com/alex-hrg/p/9057310.html
Copyright © 2020-2023  润新知