zoukankan      html  css  js  c++  java
  • python 协程中的手动切换Greenlet和自动Gevent

    手动切换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。串行实际只花费2秒时间

    import gevent
    def func1():
        print('33[31;1m李闯在跟海涛搞...33[0m')
        gevent.sleep(2)#遇上IO自动切换到
        print('33[31;1m李闯又回去跟继续跟海涛搞...33[0m')
    def func2():
        print('33[32;1m李闯切换到了跟海龙搞...33[0m')
        gevent.sleep(0.5)#遇上IO自动切换到
        print('33[32;1m李闯搞完了海涛,回来继续跟海龙搞...33[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
  • 相关阅读:
    填充与复制
    张量排序
    数据统计
    合并与分割
    前向传播(张量)- 实战
    数学运算
    Broadcasting
    TensorFlow2-维度变换
    集合3
    集合2
  • 原文地址:https://www.cnblogs.com/anhao-world/p/13744360.html
Copyright © 2011-2022 走看看