zoukankan      html  css  js  c++  java
  • python--进程锁、进程池

    进程锁:

    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()
    

    进程池:

    from multiprocessing import Process, Pool
    import time
    
    def Foo(i):
        time.sleep(2)
        return  i+100
    
    def Bar(arg):
        print('----->exec done:',arg)
    
    pool = Pool(5)  #允许进程池里同时放入5个进程
    
    for i in range(10):
        pool.apply_async(func=Foo,args=(i,),callback=Bar)  #并行执行,callback回调执行者为父进程
        #pool.apply(func=Foo, args=(i,))  #串行执行
    
    print('end')
    pool.close()
    pool.join()  #进程池中进程执行完毕后再关闭,如果注释,那么程序直接关闭。
    
  • 相关阅读:
    git 命令
    Spring Boot Web应用开发 CORS 跨域请求支持
    layui demo
    jQuery jqGrid 4.7
    jQurey zTree Demo 3.5
    jQurey zTree API 3.5
    jQurey Select2 4.0
    jQurey Validation 1.16
    Laytpl 1.2
    My97DatePicker 4.8
  • 原文地址:https://www.cnblogs.com/guqing/p/6476353.html
Copyright © 2011-2022 走看看