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)</pre>
网友评论