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语句,程序不执行就会关闭。
  • 相关阅读:
    JS中的prototype
    Php5.3的lambda函数以及closure(闭包)
    JavaScript事件委托的技术原理
    css 里层元素撑不开外层元素
    扩展VirtualBox虚拟机磁盘容量
    easyUI 条件查询 跟分页数据展示写在了一起的
    (转)Hibernate中关于多表连接查询hql 和 sql 返回值集合中对象问题
    有想去北京工作的的想法了
    第一次写oracle SQL 两个表链接查询
    第三天 SQL小记
  • 原文地址:https://www.cnblogs.com/hushuning/p/7919690.html
Copyright © 2011-2022 走看看