ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 协程中的手动切换Greenlet和自动Gevent

2020-09-28 14:02:32  阅读:316  来源: 互联网

标签:协程 python gevent greenlet 切换 Gevent print 033 def


手动切换Greenlet

from greenlet import greenlet

def test1():
    print(12)
    gr2.switch()#第一次切换
    print(34)
    gr2.switch()#第三次切换
def test2():
    print(56)
    gr1.switch()#第二次切换
    print(78)
gr1 = greenlet(test1)
gr2 = greenlet(test2)
gr1.switch()
greenlet

自动切换gevent

import gevent
def func1():
    print('\033[31;1m李闯在跟海涛搞...\033[0m')
    gevent.sleep(2)#遇上IO自动切换到
    print('\033[31;1m李闯又回去跟继续跟海涛搞...\033[0m')
def func2():
    print('\033[32;1m李闯切换到了跟海龙搞...\033[0m')
    gevent.sleep(0.5)#遇上IO自动切换到
    print('\033[32;1m李闯搞完了海涛,回来继续跟海龙搞...\033[0m')
def func3():
    print('running func3')
    gevent.sleep(0)#遇上IO自动切换到
    print('runing func3 again')

gevent.joinall([
    gevent.spawn(func1),#生成,
    gevent.spawn(func2),
    gevent.spawn(func3),
])
gevent

 

标签:协程,python,gevent,greenlet,切换,Gevent,print,033,def
来源: https://www.cnblogs.com/anhao-world/p/13744360.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有