-
Pool可以提供指定数量的进程,供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程。
-
格式: Pool([numprocess [, initializer [, initargs]]])
-
其中numprocess是要创建的进程数。如果省略此参数,将使用cpu_count()的值。Initializer是每个工作进程启动时要执行的可调用对象。Initargs是要传递给initializer的参数元祖。Initializer默认为None。
-
-
1 import multiprocessing 2 import time 3 #进程执行的任务函数 4 def func(msg): 5 print(‘start:‘,msg) 6 time.sleep(3) 7 print(‘end:‘,msg) 8 9 if __name__ == ‘__main__‘: 10 #创建初始化3的进程池 11 pool = multiprocessing.Pool(3) 12 #添加任务 13 for i in range(1,6): 14 msg = ‘任务%d‘%i 15 pool.apply_async(func,(msg,)) 16 #如果进程池不在接受新的请求,调用close 17 pool.close() 18 #等待子进程结束 19 pool.join()
-
1 start: 任务1 2 start: 任务2 3 start: 任务3 4 end: 任务1 5 start: 任务4 6 end: 任务2 7 start: 任务5 8 end: 任务3 9 end: 任务4 10 end: 任务5
相关文章
- 12-24案例解析:线程池使用不当导致的系统崩溃
- 12-24【操作系统习题】三个并发进程 R、M、P 共享一个可循环使用的缓冲区 B
- 12-24shell脚本应用《十》查看多个系统CPU,指定的进程CPU,主备机,内存使用情况
- 12-24Vmware提示以独占方式锁定此配置文件失败。另一个正在运行的VMware进程可能正在使用配置文件
- 12-24显示使用fork循环的进程数
- 12-24swoole中使用task进程异步的处理耗时任务
- 12-24终止使用“ subprocess.run”创建的进程
- 12-24解决PasswordBox的Password非依赖属性,而无法绑定的问题,以及常规命令如何使用
- 12-24git GUI和git Bash客户端的基本使用(服务器非GitHub)
- 12-24新手上路,记录下第一次使用异步协程爬取代理数据为自己构建一个低级版的本地代理池的过程