1. 程式人生 > >python併發程式設計-程序池一

python併發程式設計-程序池一

# 為什麼會有程序池的概念
    # 效率
    # 每開啟程序,開啟屬於這個程序的記憶體空間
    # 暫存器 堆疊 檔案
    # 程序過多 作業系統的排程

# 程序池
    # python中的 先建立一個屬於程序的池子
    # 這個池子指定能存放n個程序
    # 先講這些程序建立好
# 更高階的程序池
    # n,m
    # 3   三個程序
    #     + 程序
    # 20  20個
import time
from multiprocessing import Pool,Process
def func(n):
    for i in range(10):
        print(n+1)

def func2(n):
    for i in range(10):
        print(n+2)
if __name__ == '__main__':
    start = time.time()
    pool = Pool(5)               # 5個程序
    pool.map(func,range(100))    # 100個任務
    pool.map(func2,[('alex',1),'egon'])    # 100個任務
    t1 = time.time() - start

    start = time.time()
    p_lst = []
    for i in range(100):
        p = Process(target=func,args=(i,))
        p_lst.append(p)
        p.start()
    for p in p_lst :p.join()
    t2 = time.time() - start
    print(t1,t2)