2018-08-06-Python全栈开发day35-事件、IO、select-part2-进程与协程
1. 协程
进程和线程都是通过竞争来决定下一个运行的对象,协程是人为的,自定义的进行切换。
协程可以看做一个为线程。
2.协程工作的原理yield
生成器对象yield,每次next时会返回yield后的一个对象,相对于函数,return只能一次,而yield可以多次。
1 def test(): 2 print('ok') 3 yield 1 4 print('ok22') 5 yield 2 6 7 8 p1=test()#运行test,直接运行时并不打印函数内的print 9 s1=p1.__next__()#next的时候指针会到yield之后 10 s2=p1.__next__()#继续next 11 print(s1)#再打印对象的值,此时得到的时yield后的值
协程是通过yield也就是生成器来完成的
3.协程Coroutine
通过gevent模块,通过网络访问其他资源时,如果碰到io操作,则自动切换到greenlet,等到io操作完成再回来继续执行,可以提高利用效率,但是还是单核利用,
所以可以通过多进程+协程来完成多核利用
                    
                
                
            
        
浙公网安备 33010602011771号