zoukankan      html  css  js  c++  java
  • 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语句,程序不执行就会关闭。
  • 相关阅读:
    Orcle数据库查询练习复习:二
    Orcle数据库查询练习复习:一
    Xamarin.Android 入门之:xamarin使用webserver和html交互
    Xamarin.Android 入门之:Listview和adapter
    Xamarin.Android 入门之:Android的生命周期
    Xamarin.Android 入门之:Android API版本设置
    Xamarin.Android 入门之:Xamarin快速入门
    阶段01Java基础day16集合框架02
    阶段01Java基础day13常见对象02
    阶段01Java基础day10面向对象05
  • 原文地址:https://www.cnblogs.com/hushuning/p/7919690.html
Copyright © 2011-2022 走看看