使用grrenlet、gevent实现多任务

from greenlet import greenlet
import time

def test1():
    while True:
        print('----A----')
        g2.switch()
        time.sleep(0.5)

def test2():
    while True:
        print('----B----')
        g1.switch()
        time.sleep(0.5)

g1 = greenlet(test1)
g2 = greenlet(test2)
g1.switch()

 

import gevent,time
from gevent import monkey; monkey.patch_all()

def f1(n):
    for i in range(n):
        print(gevent.getcurrent(),i)
        time.sleep(0.1)
def f2(n):
    for i in range(n):
        print(gevent.getcurrent(),i)
        time.sleep(0.1)
def f3(n):
    for i in range(n):
        print(gevent.getcurrent(),i)
        time.sleep(0.1)

# g1 = gevent.spawn(f1,5)
# g2 = gevent.spawn(f2,5)
# g3 = gevent.spawn(f3,5)
# g1.join()
# g2.join()
# g3.join()
gevent.joinall([gevent.spawn(f1,5),
                gevent.spawn(f2,5),
                gevent.spawn(f3,5)])

 

posted @ 2018-09-13 18:13  Woowo  阅读(111)  评论(0编辑  收藏  举报