1、进程池
硬件的发展赶不上软件的速度,电脑硬件不可能支持无线多的线程在运行(程序运行),而“池”的概念就是用来防止电脑趴窝的
保证硬件安全,最大限度利用电脑。
“池”降低了程序运行效率,保证了硬件安全(硬件的发展赶不上软件的速度)
创建线程池
python调包侠,这是 一个高阶模块
回顾生成器的小知识:
gevent模块
yeild无法识别I/O需要找到一个能够识别IO的一个工具,并且能保存状态的工具:gevent模块(该模块需要手动下载)
检测任务有无IO操作
gevent模块在使用之前也无法识别到time.sleep()等IO情况,需要手动配置一个参数
spawn模块如何使用/p>
关于切换:
代码部分:
spawn的原理:spawn相当于一个列表,spawn()内一个放入一个列表,一个个检测,一个有io执行下一个,同时保存状态
结论:程序员之前通过yield实现单线程的切换+保存状态高效率的使用cpu,但是他不能识别sleep等操作,使用gevent模块来弥补sleep的不足,最终实现单线程的并发!!
基于上述,让TCP服务端实现并发/h2>
客户端:
服务端:
分析:实现单线程下的并发,要用到gevent模块中的spawn,将可能出现IO操作的函数名放入里面,而服务端根据作用的不同可分为两个函数:站在门口接客的conn,addr = server.accept(),和用来收发信息的
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!