python P204 6.协程的概念 https://www.bilibili.com/video/BV1aJ411H7Ej?p=204


进程 数据隔离 数据不安全 操作系统级别 开销非常大 能利用多核
线程 数据共享 数据不安全 操作系统级别 开销小 不能利用多核
正常的开发语言,多线程可以利用多核
cpython解释下的多个线程不能利用多核:规避了所有的io操作的单线程
协程 数据共享 数据安全 用户级别 跟小 不能利用多核 协程的所有切换基于用户,只有用户能感知到的io操作才会用协程模块做切换规避(网络操作,socket,请求网页的)
是操作系统不可见的
协程本质就是一条线程,多个任务在一条线程来回切换,来规避io操作,就达到了我们将一条线程中的io操作系统降到最低的目的

切换 并 规避io的两个模块
gevent = 利用了 greenlet 底层模块完成的切换 + 自动规避io的功能
asyncio = 利用了 yield 底层语法完成的切换 + 自动规避io的功能
tornado 异步的web框架
yield from 更好的实现协程
send - 更好的实现协程
asyncio模块 基于python原生的协程的概念正式的被成立
特殊的在python中提供协程功能的关键字:aysnc await

用户级别的协程的好处:
减轻了操作系统的负担
一条线程如果开了多个协程,那么给操作系统造成线程很忙的假象,这样能多争取时间来cpu计算


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM