并发编程(四)线程池、进程池、协程

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进行处理,非常感谢!

上一篇 2019年7月12日
下一篇 2019年7月12日

相关推荐