zoukankan      html  css  js  c++  java
  • 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')

  • 相关阅读:
    模拟器分辨率收集
    6. 蜂鳴器
    5. 伺服馬達
    4. 流水燈
    3. 序列埠的輸出以及按鈕消抖
    2. 沒有按鈕的電路是沒有靈魂的
    1. 點亮一個LED燈
    ARDUINO準備工作
    vritualenvwrapper的基本操作
    蠻力法兌換零錢及其優化
  • 原文地址:https://www.cnblogs.com/WebLinuxStudy/p/11935600.html
Copyright © 2011-2022 走看看