什么是协成
1.协成,又称微线程,纤程,协程是一直轻量级线程
2.线程的切换会保存到CPU的栈里,协程拥有自己的寄存器上下文和栈里
3协程调度切换时,将寄存器上下文和栈保存到其它地方,在切回来的时候,恢复先前保存的寄存器上下文和栈
4 协程能保存上一次调用时的状态
5.协程最主要的作用是在单线程的条件下实现并发的效果,但实际上还是串行的
协成缺点
协程的本质是个单线程,它不能同时将单个CPU的多个核用上,协程需要和线程配合才能运行在多个CPU上,
线程阻塞会阻塞整个程序
协程为什么能够处理大并发
1.协程之所以快是因为遇到I/O操作就切换
2.这里先演示用greenlet实现手动的各个协程之间切换
其实Gevent 模块仅仅是对greenlet 的再封装,将I/O间的手动切换变成自动切换
协程为何处理大并发
1Gevebt是一个第三方库,可以轻松通过gevent实现并发同步或异步编程
2.在gevent中用到的主要模式是Greenlet ,它是以C扩展模块形式接入Python的轻量级协程
3.Greenlet 全部运行在主程序操作系统进程的内部,但它们被协程作式地调度
4Genvent原理是只要遇到I/O操作就会自动切换到下一个协程