进程之进程池

2019-04-19  本文已影响0人  遇明不散

进程池

产生原因

如果有大量任务需要多进程完成,则可能需要频繁的创建删除进程,给进算计带来较多的资源消耗。

进程池的原理

创建适当的进程放入进程池,用来处理待处理事件,处理完毕后进程不销毁,仍然在进程池中等待处理其他事件,直到事件全部处理完毕,进程退出。 进程的复用降低了资源的消耗。

进程池的创建

进程池的具体操作

# pool.py
from multiprocessing import Pool
import time

def worker(msg):
    time.sleep(1)
    print(msg)
    return time.ctime()

pool = Pool(processes = 4)

result = []

for i in range(10):
    msg = 'Hello %d world' % i
    r = pool.apply_async(func = worker,args = (msg,))
    result.append(r)

pool.close()
pool.join()

for i in result:
    print(i.get())


# pool_map.py
from multiprocessing import Pool
import time

def fun(n):
    time.sleep(1)
    print('pool map')
    return n * n

pool = Pool(4)

r = pool.map(fun,range(10))
pool.close()
pool.join()
print(r)
上一篇 下一篇

猜你喜欢

热点阅读