协程

什么是协成

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操作就会自动切换到下一个协程

原文地址:https://www.cnblogs.com/xiaoxiamiaichiyu/p/13836827.html