zoukankan      html  css  js  c++  java
  • gevent 简单运用

    import gevent
    import time
    
    def f1(n):
        for i in range(n):
            print(gevent.getcurrent(), i)#获取当前执行的函数
            # print(i,'我来自F1')
            time.sleep(0.5)
            gevent.sleep(0.5)
    
    def f2(n):
        for i in range(n):
            print(gevent.getcurrent(), i)
            time.sleep(0.5)
            gevent.sleep(0.5)
    
    def f3(n):
        for i in range(n):
            print(gevent.getcurrent(), i)
            time.sleep(0.5)
            gevent.sleep(0.5)
    
    print("----1---")
    g1 = gevent.spawn(f1, 5)
    print("----2---")
    g2 = gevent.spawn(f2, 5)
    print("----3---")
    g3 = gevent.spawn(f3, 5)
    print("----4---")
    g1.join()
    g2.join()
    g3.join()

    运行结果如下:

    ----1---
    ----2---
    ----3---
    ----4---
    <Greenlet at 0x103a17c48: f1(5)> 0
    <Greenlet at 0x103d38148: f2(5)> 0
    <Greenlet at 0x103d38248: f3(5)> 0
    <Greenlet at 0x103a17c48: f1(5)> 1
    <Greenlet at 0x103d38148: f2(5)> 1
    <Greenlet at 0x103d38248: f3(5)> 1
    <Greenlet at 0x103a17c48: f1(5)> 2
    <Greenlet at 0x103d38148: f2(5)> 2
    <Greenlet at 0x103d38248: f3(5)> 2
    <Greenlet at 0x103a17c48: f1(5)> 3
    <Greenlet at 0x103d38148: f2(5)> 3
    <Greenlet at 0x103d38248: f3(5)> 3
    <Greenlet at 0x103a17c48: f1(5)> 4
    <Greenlet at 0x103d38148: f2(5)> 4
    <Greenlet at 0x103d38248: f3(5)> 4

    也可以:

    import gevent
    import time
    
    def f1(n):
        for i in range(n):
            print(gevent.getcurrent(), i)#获取当前执行的函数
            # print(i,'我来自F1')
            time.sleep(0.5)
            gevent.sleep(0.5)
    
    def f2(n):
        for i in range(n):
            print(gevent.getcurrent(), i)
            time.sleep(0.5)
            gevent.sleep(0.5)
    
    def f3(n):
        for i in range(n):
            print(gevent.getcurrent(), i)
            time.sleep(0.5)
            gevent.sleep(0.5)
    
    gevent.joinall([gevent.spawn(f1,5),gevent.spawn(f2,5),gevent.spawn(f3,5),])

    运行结果如下:

    <Greenlet at 0x100a7fc48: f1(5)> 0
    <Greenlet at 0x100da0148: f2(5)> 0
    <Greenlet at 0x100da0248: f3(5)> 0
    <Greenlet at 0x100a7fc48: f1(5)> 1
    <Greenlet at 0x100da0148: f2(5)> 1
    <Greenlet at 0x100da0248: f3(5)> 1
    <Greenlet at 0x100a7fc48: f1(5)> 2
    <Greenlet at 0x100da0148: f2(5)> 2
    <Greenlet at 0x100da0248: f3(5)> 2
    <Greenlet at 0x100a7fc48: f1(5)> 3
    <Greenlet at 0x100da0148: f2(5)> 3
    <Greenlet at 0x100da0248: f3(5)> 3
    <Greenlet at 0x100a7fc48: f1(5)> 4
    <Greenlet at 0x100da0148: f2(5)> 4
    <Greenlet at 0x100da0248: f3(5)> 4

    两种方式都可以,第二种方式比较节约代码,建议使用第二种方式

  • 相关阅读:
    iOS 疑难杂症 — — 复制 Storyborad 莫名崩溃
    【Swift 2.1】共享文件操作小结(iOS 8 +)
    【Swift】 应用内显示 AppStore 某个应用的详情
    【Swift】iOS开发笔记(一)
    【Swift 2.0】实现简单弹幕功能
    站长名站
    Future home of something quite cool.
    大神们都在用的两个国外的免费离线下载:Rain&amp; LoadBT
    Amazon Publisher Studio让产品推广更简单
    人脉是设计出来的,进入高端人脉圈的方法
  • 原文地址:https://www.cnblogs.com/liangliangzz/p/11228257.html
Copyright © 2011-2022 走看看