C语言基础学习PYTHON——基础学习D10
20180906内容纲要:
1、协程
(1)yield
(2)greenlet
(3)gevent
(4)gevent实现单线程下socket多并发
2、简单爬虫
3、select
4、IO多路复用
5、小结
6、练习
1 协程
协程
又叫微线程,纤程。协程是一种用户态的轻量级线程。
协程有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文、和栈保存到其他地方,在切换回来的时候回复先前保存的寄存器上下文和栈。
协程能保存上一次调用时的状态。一个cpu支持上万个协程都不是问题,很适合用于高并发处理。
协程的本质就是单线程。无法利用多核资源。
实现协程主要有以下几种方式:
(1)yield
1 #Author:ZhangKanghui 2 3 4 def Producer(): 5 r = con1.__next__() 6 r = con2.__next__() 7 n = 0 8 while n < 5: 9 n += 1 10 con1.send(n) 11 con2.send(n) 12 print("