主要知识点
1.调用的模块:from concurrent.futures impot 线程池:TheadPoolExecutor 进程池: ProcessPoolExecutor
2. 实例化对象设置池大小:pool = ProcessPoolExecutor(10) 参数为池大小
3. 发布任务:pool.submit() 类似process.start的意思,启动进程
4. 关闭池:pool.shutdown() 完成指定大小后,关闭进程池
5. 两种使用方法是一致的
在刚开始学多进程或多线程时,我们迫不及待地基于多进程或多线程实现并发的套接字通信,然而这种实现方式的致命缺陷是:服务的开启的进程数或线程数都会随着并发的客户端数目地增多而增多,这会对服务端主机带来巨大的压力,甚至于不堪重负而瘫痪,于是我们必须对服务端开启的进程数或线程数加以控制,让机器在一个自己可以承受的范围内运行,这就是进程池或线程池的用途,例如进程池,就是用来存放进程的池子,本质还是基于多进程,只不过是对开启进程的数目加上了限制