协程:
和进程,线程的不同:
进程,线程 | 抢占式 | 进程和线程的切换,我们不能参与 |
协程 | 非抢占式 | 协程的切换,由用户来控制,主要解决I/O操作 |
协程的优点:
(1)极高的执行效率:因为子程序切换由程序自身来控制,没有线程切换的开销
(2)不需要多线程的锁机制,因为只有一个线程,不存在同时写变量的冲突
yield:
import time
# 有yield的函数就是生成器函数,
def test1():
while True:
print('test1....')
time.sleep(1)
yield
def test2():
while True:
print('test2...')
time.sleep(1)
yield
def main():
g1 = test1() # 返回一个生成器
g2 = test2()
while True:
next(g1) # 调用生成器的next()函数,开始执行函数体
next(g2)
if __name__ == '__main__':
main()
生成器有问题的同学欢迎去本人的博客【Python生成器】查看
下面为你指路