• 进程池


     1 import os
     2 import time
     3 from multiprocessing import Pool,Process,Lock
     4 
     5 def foo(i):
     6     time.sleep(1)
     7     # print('work is over')
     8     print(i)
     9     return i+100
    10 
    11 # def fun():
    12 #     print(os.getppid())
    13 #     print(os.getpid())
    14 
    15 
    16 if __name__ == '__main__':
    17     pool = Pool(5)
    18     for i in range(100):
    19         pool.apply(func=foo,args=(i,))    # 同步运行,一个一个的运行
    20         # pool.apply_async(func=foo,args=(i,))  # 异步并行
    21 
    22     pool.close()
    23     pool.join()
    24     print('end')
    25 输出:

    在进程池里面,pool.close() 必须在pool.join()的前面。

    回调函数用的是主进程。比如在写logger()的时候,当子进程结束了之后就可以释放掉子进程,回调主函数进行写

    logger()。

    逻辑之外的就用回调函数。

    穿函数就用return

     1 import os
     2 import time
     3 from multiprocessing import Pool,Process,Lock
     4 
     5 def foo(i):
     6     time.sleep(1)
     7     # print('work is over')
     8     print(i)
     9     print('son',os.getpid())
    10     return i+100
    11 
    12 def fun(arg):
    13     # print(os.getppid())
    14     # print(os.getpid())
    15     print('hello')
    16     print('fun',os.getpid(),arg)
    17 
    18 if __name__ == '__main__':
    19     pool = Pool(5)
    20     print('parent',os.getpid())
    21     for i in range(100):
    22         # pool.apply(func=foo,args=(i,))    # 同步运行,一个一个的运行
    23         # pool.apply_async(func=foo,args=(i,))  # 异步并行
    24         pool.apply_async(func=foo,args=(i,),callback=fun)
    25     pool.close()
    26     pool.join()
    27     print('end')
    28 输出
    29 parent 21084
    30 0
    31 son 25984
    32 hello
    33 fun 21084 100
    34 1
    35 son 21628
    36 hello
    37 fun 21084 101
    38 2
    39 son 23384
    40 hello
    41 fun 21084 102
  • 相关阅读:
    [Silverlight]常见问题
    [C#]有趣的VS扩展DebuggerVisualizer
    [EF5.0CODE FIRST]多对一及自关联映射的处理
    自定义控件传值
    关于.Net中类型转换ToInt32
    SQL版整数转IP
    SQL2008 Merge关键字用法与简例
    SQL语句,同时返回结果集,输出参数的值及return值
    多线程与异步操作实现的探讨
    SQL Prompt4 破解版
  • 原文地址:https://www.cnblogs.com/ch2020/p/12760266.html
Copyright © 2020-2023  润新知