# coding=utf-8
import gevent
from gevent.lock import Semaphore
def func1(lock):
count = 0
while True:
lock.acquire()
print("func1:: count {}".format(count))
count += 1
lock.release()
gevent.sleep(3)
def func2(lock):
count = 0
while True:
lock.acquire()
print("func2:: count {}".format(count))
count += 1
lock.release()
gevent.sleep(1)
if __name__ == "__main__":
lock = Semaphore(1)
t1 = gevent.spawn(func1, lock)
t2 = gevent.spawn(func2, lock)
gevent.joinall([t1, t2])
print("main end")
结果:
func1:: count 0
func2:: count 0
func2:: count 1
func2:: count 2
func1:: count 1
func2:: count 3
func2:: count 4
使用gevent.sleep切换协程任务
# coding=utf-8
import gevent
impo