我正在接受 Gevents(用于异步功能的 python 库)并编写了一个非常小的程序来了解它是如何工作的,但结果非常令人困惑。下面是代码
import gevent
import time
def mytime(t):
time.sleep(t)
print " i have slept for ",t,"secs"
x = range (0,10)
x.reverse()
for i in x :
jobs = [ gevent.spawn(mytime , i) ]
gevent.joinall(jobs)
无论我运行多少次,我都会得到输出
i have slept for 9 secs
i have slept for 8 secs
i have slept for 7 secs
i have slept for 6 secs
i have slept for 5 secs
i have slept for 4 secs
i have slept for 3 secs
i have slept for 2 secs
i have slept for 1 secs
i have slept for 0 secs
有一个类似的例子,作为 gevent教程的一部分。
异步功能非常明显。我所做的就是在代码中添加睡眠功能。输出不应该是这样的吗?
i have slept for 6 secs
i have slept for 8 secs
i have slept for 5 secs
i have slept for 9 secs
i have slept for 7 secs
i have slept for 0 secs
i have slept for 3 secs
i have slept for 2 secs
i have slept for 1 secs
i have slept for 4 secs