Python并发编程—进程池
2020-12-07 02:49
标签:nbsp syn pen print python range tip 并发编程 执行 1.必要性 2.原理 创建一定数量的进程来处理事件,事件处理完进 程不退出而是继续处理其他事件,直到所有事件全都处理完毕统一销毁。增加进程的重复利用,降低资源消耗。 3.进程池实现 【1】 创建进程池对象,放入适当的进程 from multiprocessing import Pool Pool(processes) 【2】 将事件加入进程池队列执行 pool.apply_async(func,args,kwds) 【3】 关闭进程池 pool.close() 【4】 回收进程池中进程 Python并发编程—进程池 标签:nbsp syn pen print python range tip 并发编程 执行 原文地址:https://www.cnblogs.com/maplethefox/p/10989156.html进程池实现
【1】 进程的创建和销毁过程消耗的资源较多
【2】 当任务量众多,每个任务在很短时间内完成时,需要频繁的创建和销毁进程。此时对计算机压力较大
【3】 进程池技术很好的解决了以上问题。
pool.join()
功能: 回收进程池中进程
1 from multiprocessing import Pool
2 from time import sleep,ctime
3
4 # 进程池事件
5 def worker(msg):
6 sleep(2)
7 print(msg)
8 return ctime()
9
10 # 创建进程池
11 pool = Pool(4)
12
13 # 向进程池添加执行事件
14 for i in range(10):
15 msg = "Hello %d"%i
16
17 # r 代表func事件的一个对象
18 r = pool.apply_async(func=worker,args=(msg,))
19
20 # 关闭进程池
21 pool.close()
22
23 # 回收进程池
24 pool.join()
25
26 print(r.get()) # 可以获取事件函数的返回值