适合零基础学习的—关于多任务-协程的简单练习:
1.
from greenlet import greenlet
import time
def task_1():
while True:
print("---1---")
gr2.switch()
time.sleep(0.1)
def task_2():
while True:
print("---2---")
gr1.switch()
time.sleep(1)
gr1 = greenlet(task_1)
gr2 = greenlet(task_2)
gr1.switch()
import gevent
def f1(n):
for i in range(n):
print(gevent.getcurrent(), i)
gevent.sleep(0.5)
def f2(n):
for i in range(n):
print(gevent.getcurrent(), i)
gevent.sleep(0.5)
def f3(n):
for i in range(n):
print(gevent.getcurrent(), i)
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()