关于协程开发
协程:
1.什么是协程
协程,经常被称为微线程,纤程,是一种多任务并发的操作手段
定义:协程是运行在单线程中的并发程序
优点:由于协程省去了多线程,多进程并发机制下的切换管理和状态数据管理等,所以操作效率较高
2.协程的运用
2.1:协程的多任务并发
【关于协程开发】协程既然是多任务并发,参考了多线程的工作机制,通过gevent模块的完成最基本的多任务操作协程
手工切换 greenlet:
自动切换:gevent
手工切换:任务要求一边跳舞一边唱歌
Import time
From greenlet import gerrnlet
Def sing():
While True:
Print(“唱歌<<<<<<<<”)
Time.sleep(1)
G2.switch()
Def dance():
While true:
Print(“跳舞<<<<<<<<<”)
Time.sleep()
G1.switch()
If __name__ == “__main__”:
创建两个协程对象
G1 = greenlet(sing)
G2 = greenlet(dance)
G1.switch()
Print(“主进程执行”)
线程 进程以及协程的区别: 多进程:应用于中大型项目开发过程中,对于数据管理更加严格的项目并发操作 通过进程管理数据,通过线程运行任务,完成并发处理数据
多线程:微进程,应用于多任务处理机制,对于数据的操作并不是管理严格
如:如果出现了一个大文件的复制粘贴功能-> 多线程 效率非常高
如果出现了一个单路大数据量的的运算功能-> 多线程 < 单线Django web framework
多人同时访问网站-> 网站并发量-> 多线程的方式实每个线程,会服务一个访问数据请求协程:微线程,应用于多任务处理机制,对于数据的处理更加的松散!
协程的方式,对于注重多任务处理机制的软件,更加的友好!性能处理更加优秀!
Tornado web framework多人同时访问网站-> 网站并发量-> 事件轮询机制[epoll/Kqueue系统内核]
单线程多任务事件轮询机制_>并发处理效率,> Django
推荐阅读
- 深入理解Go之generate
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- 四首关于旅行记忆的外文歌曲
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 醒不来的梦
- 关于自我为中心的一点感想
- 使用协程爬取网页,计算网页数据大小
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- 关于Ruby的杂想
- 关于读书的思考