zoukankan      html  css  js  c++  java
  • python编程中的并发------协程gevent模块

    任务例子:喝水、吃饭动作需要耗时1S

    单任务:(耗时20s)

    for i in range(10):

        print('a正在喝水')

        time.sleep(1)

        print('a正在吃饭')

        time.sleep(1)

    一、多线程(耗时10s)

    协程gevent模块

    代码如下:

    # 定义一个gevent的线程阻塞规则
    # 任何的阻塞都将切换协程
    monkey.patch_all()

    def start(num):
    print('--开始执行任务{}--'.format(num))
    time.sleep(2)
    print('--结束执行任务{}--'.format(num))

    if __name__ == '__main__':
    # 调用协程的方法1
    # g1 = gevent.spawn(start, 1)
    # g2 = gevent.spawn(start, 2)
    # g3 = gevent.spawn(start, 3)
    # join方法为阻塞方法,调用即开始切换协程
    # g1.join()
    # g2.join()
    # g3.join()

    #调用协程的方法2
    gevent.joinall([
    gevent.spawn(start,1),
    gevent.spawn(start,2),
    gevent.spawn(start,3)
    ])
    
    

     

    转载请注明出处!谢谢!
  • 相关阅读:
    Spring类中的split()方法
    单例模式
    c#操作文件
    c#选择文件
    c#判断程序是否正在运行
    .net创建文件夹和txt文件
    .net 程序睡眠之后执行
    .net读取txt文件
    .net Post Json数据
    sql查看表结构以及表说明
  • 原文地址:https://www.cnblogs.com/felix-g/p/13237758.html
Copyright © 2011-2022 走看看