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语句,程序不执行就会关闭。
  • 相关阅读:
    Java Program to Calculate Standard Deviation
    Basic JavaScript: Counting Cards
    MacBook Pro jdk Installation、Update、Delete
    How to Download and Install Oracle JAVA 8 on Ubuntu 18.04/16.04 LTS
    9扩大你的词汇量:字体和颜色样式
    8添加一些样式:开始学习CSS
    7添加一个“X”到HTML:转到XHTML
    6严格的HTML:遵循标准,合乎规范
    5认识媒体:给网页添加图像
    4Web镇之旅:开始链接
  • 原文地址:https://www.cnblogs.com/hushuning/p/7919690.html
Copyright © 2011-2022 走看看