Python并发编程-进程池

  • 为什么有进程池的概念
    • 效率问题
    • 每次开启进程,都需要开启属于这个进程的内存空间
    • 寄存器,堆栈
    • 进程过多,操作系统的调度
  • 进程池
    • python中的 先创建一个属于进程的池子
    • 这个池子指定能存放多少进程
    • 先将这些进程创建好
  • 更高级的进程池
    • 3,20
    • 默认启动3个进程
    • 处理能力不够的时候,加进程
    • 最多20个
    • python中没有
from multiprocessing import Pool,Process
import time
#Process就无需使用了

def func(n):
    for i in range(10):
        print(n+1)
#下面这段比较进程池和多进程所需时间的不同
if __name__ == '__main__':
    start = time.time()
    pool = Pool(5)             #启动5个进程
    pool.map(func, range(100)) #range处必须是可迭代的参数,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)

猜你喜欢

转载自www.cnblogs.com/konglinqingfeng/p/9699265.html