Python实现协程实例

2020-05-14  本文已影响0人  乔治大叔

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>
上一篇下一篇

猜你喜欢

热点阅读