协程

'''
1. 目标:
在线程下实现并发
并发(多个任务看起来是同时执行就是并发):切换+保存状态

2. 协程:
协程是单线程实现并发
注意:协程是程序员意淫出来的东西,操作系统里只有进程和线程的概念(操作系统调度的是线程)

在单线程下实现多个任务间遇到IO就切换就可以降低单线程的IO时间,从而最大限度地提升单线程的效率


'''

#串行执行
import time

def func1():
for i in range(10000000):
i+1

def func2():
for i in range(10000000):
i+1

start = time.time()
func1()
func2()
stop = time.time()
print(stop - start)


#基于yield并发执行
import time
def func1():
while True:
print('func1')
10000000+1
yield

def func2():
g=func1()
for i in range(10000000):
print('func2')
time.sleep(100)
i+1
next(g)

start=time.time()
func2()
stop=time.time()
print(stop-start)
posted @ 2018-09-22 17:39  不沉之月  阅读(99)  评论(0编辑  收藏  举报