python gevent库

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

python gevent库

IT之一小佬   2022-09-28 我要评论

前言:

  • 1、gevent库可以轻松实现并发同步或异步编程。gevent中使用的主要模式是Greenlet,它是以C扩展模块的形式访问Python的轻量级协程。
  • 2、Greenlet全部运行在主程序操作系统的过程中,但是它们是协作调度的。

安装gevent库:

pip install gevent

示例代码1:

from gevent import monkey  # 为了能识别time模块的io
 monkey.patch_all()  # 必须放到被打补丁者的前面,如 time,socket 模块之前
import gevent
import time
 def gf(name):
    print(f'{name}:我想打王者!!')
    # gevent.sleep(2)
    time.sleep(2)
    print(f'{name}:我想吃大餐!!!')
 def bf(name):
    print(f'{name}:一起打!!!')
    # gevent.sleep(2)
    time.sleep(2)
    print(f'{name}:一快去吃!!')
if __name__ == "__main__":
    start = time.time()
    # 创建协程对象
    g1 = gevent.spawn(gf, '张三')
    g2 = gevent.spawn(bf, '李四')
    # 开启任务
    g1.join()
    g2.join()
    end = time.time()
    print(end - start)

运行结果:

 示例代码2:

import gevent
 def foo():
    print('Running in foo')
    gevent.sleep(2)
    print('Explicit context switch to foo again')
 
def bar():
    print('Explicit context to bar')
    gevent.sleep(2)
    print('Implicit context switch back to bar')
 gevent.joinall([
    gevent.spawn(foo),
    gevent.spawn(bar),
])

运行结果:

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们