• python进程池和进程锁


    1.进程锁:
    from multiprocessing import Process, Lock

    def f(l, i):
      l.acquire()
      print('hello world', i)
      l.release()

    if __name__ == '__main__':
      lock = Lock()

    for num in range(10):
      Process(target=f, args=(lock, num)).start()

    2.进程池:
    from multiprocessing import Pool
    import time

    def Foo(i):
      time.sleep(2)
      print(i+100)

    #允许进程池里同时放入5个进程
    pool = Pool(5)
    for i in range(10):
      #并行执行
      pool.apply_async(func=Foo,args=(i,))

    pool.close()
    pool.join() #进程池中进程执行完毕后再关闭,如果注释,那么程序直接关闭。

    print('end')


    3.进程池与进程锁:
    from multiprocessing import Pool, Manager
    import time

    def Foo(i, l):
      l.acquire()
      time.sleep(2)
      print(i+100)
      l.release()

    lock = Manager().Lock()
    #允许进程池里同时放入5个进程
    pool = Pool(5)
    for i in range(10):
      #并行执行
      pool.apply_async(func=Foo,args=(i, lock, ))

    pool.close()
    pool.join() #进程池中进程执行完毕后再关闭,如果注释,那么程序直接关闭。

    print('end')

  • 相关阅读:
    9.17考试
    Something
    tesuto-Mobius
    7.22考试
    填坑...P1546 最短网络 Agri-Net
    P1125 笨小猴
    P2822 组合数问题
    致我们曾经刷过的水题
    Luogu P1186 玛丽卡
    Luogu P1726 上白泽慧音
  • 原文地址:https://www.cnblogs.com/WebLinuxStudy/p/11935600.html
Copyright © 2020-2023  润新知