• python 进程池的使用和坑


     1 from multiprocessing import Pool,Process
     2 import time,os
     3 def Foo(a):#创建函数
     4     time.sleep(2)
     5     print('in the process:',os.getpid(),os.getppid())
     6     return a+100
     7 
     8 def bar(arga):#创建函数
     9     print('---->',arga)
    10 if __name__ == '__main__':
    11     print('父进程ID:',os.getpid())
    12     pool = Pool(2)#创建进程池最大容量为2,最多允许2个进程同时运行,参照线程信号量模式
    13     for i in range(10):#创建10个进程
    14         pool.apply_async(func=Foo,args=(i,),callback=bar)#创建线程,参数1调用函数,参数2设置i为函数FOO参数,参数3为返回函数
    15         #参数三为回调函数,将FOO函数的返回值作为参数调用bar函数。
    16         #pool.apply(func=Foo,args=(i,),callback=bar)#串行
    17          #pool.apply_async(func=Foo,args=(i,),callback=bar)#并行
    18 
    19     pool.close()#关闭
    20     #pool.join()#如果没有.join语句,程序不执行就会关闭。这里是个大坑。
    from multiprocessing import Pool,Process
    import time,os
    def Foo(a):#创建函数
    time.sleep(2)
    print('in the process:',os.getpid(),os.getppid())
    return a+100

    def bar(arga):#创建函数
    print('---->',arga)
    if __name__ == '__main__':
    print('父进程ID:',os.getpid())
    pool = Pool(2)#创建进程池最大容量为2,最多允许2个进程同时运行,参照线程信号量模式
    for i in range(10):#创建10个进程
    pool.apply_async(func=Foo,args=(i,),callback=bar)#创建线程,参数1调用函数,参数2设置i为函数FOO参数,参数3为返回函数
    #参数三为回调函数,将FOO函数的返回值作为参数调用bar函数。
    #pool.apply(func=Foo,args=(i,),callback=bar)#串行
    #pool.apply_async(func=Foo,args=(i,),callback=bar)#并行

    pool.close()#关闭
    #pool.join()#如果没有.join语句,程序不执行就会关闭。
  • 相关阅读:
    第一次玩github,第一个开源小项目——xxoo
    从Cortex-M3的MSP 和PSP谈Linux能否在中断中使用Sleep
    MSP与PSP
    Keil综合(03)_map文件全解析[转]
    Android 格式化分区命令
    强化学习(二)马尔科夫决策过程(MDP)
    强化学习(一)模型基础[转]
    在博客中使用MathJax写数学公式
    循环神经网络(RNN)模型与前向反向传播算法
    Git missing Change-Id in commit message footer解决方法
  • 原文地址:https://www.cnblogs.com/hushuning/p/7919690.html
Copyright © 2020-2023  润新知