协程

  
17年12 月5日
协程 :单线程实现并发。
ps:并非所有的并发对效率都有意义。
1 gevent模块
协程:单线程下实现并发(并发指的是看起来同时运行,实现方式:切换+保存状态)
遇到IO切换到其他任务去执行,这种切换才能提高效率

gevent模块
1、切换+保存状态
2、检测单线程下任务的IO,实现遇到IO自动切换
只有大招:(yield,Greenlet不太会)
#pip3 install gevent
#1、切换+保存状态
#2 检测IO,实现遇到IO切换
from gevent import monkey;monkey.patch_all()
import gevent
import time

def eat(name):
    print('%s eat 1' %name)
    time.sleep(2)
    print('%s eat 2' %name)

def play(name):
    print('%s play 1' %name)
    time.sleep(3)
    print('%s play 2' %name)

g1=gevent.spawn(eat,'alex')
g2=gevent.spawn(play,'egon')

g1.join()
g2.join()
========================================
17年12月6日:
#pip3 install gevent
# from gevent import monkey;monkey.patch_all()   # 打补丁,卸载最前面
# import gevent
import time

def task1(name):
    print('%s is run 1' %name)
    time.sleep(3)
    print('%s is run 2' %name)

def task2(name):
    print('%s is run 1' %name)
    time.sleep(2)
    print('%s is run 2' %name)


# g1=gevent.spawn(task1,'alex')
# # print('===>1')
# g2=gevent.spawn(task2,'egon')
# # print('===>2')


# g1.join()
# g2.join()
# gevent.joinall([g1,g2])


热勇 --- 栗先达


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值