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()  #進程池中進程執行完畢后再關閉,如果注釋,那么程序直接關閉。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM