python 筆記 之 多進程 --- 進程池

'''
多進程 --- 進程池
異步, 同步
阻塞的,一個一個的執行
非阻塞
'''
import multiprocessing
import time

def fun(msg):
    print("#########start###{0}".format(msg))
    time.sleep(3)
    print("#########end###{0}".format(msg))

if __name__ == '__main__':
    print("Start main")
    pool = multiprocessing.Pool(processe=3)
    for i in range(1,7):
        msg = "hello{0}".format(i)
        #apply_async 非阻塞,定義的進程池最大數的同時執行
        pool.apply_async(fun,(msg,)) # 多個同時執行,等待最長的那個時間
        #apply
        pool.apply(fun,(msg,))  #一個一個的執行,等待每個時間之和
    pool.close() # close以後不會有新的進程加入
    #在調用join以前先close,不然會報錯
    pool.join() #等待全部子進程結束
    print("end main")
相關文章
相關標籤/搜索