我对 Stackless Python 的 tasklet 进行了大量的谷歌研究。每个来源都提到它作为一个线程
但是tasklet不是并发的。他们逐部分执行代码。
像这样的代码:
def function(n):
print n
print n
stackless.schedule()
stackless.tasklet(function)(3)
stackless.tasklet(function)(10)
stackless.run()
将打印
3
3
10
10
tasklet 执行代码,直到遇到 stackless.schedule() 然后它从开始或从上次暂停的地方执行下一个 tasklet。
每个程序员都知道“无 GOTO”的黄金法则。我的问题是:
这和 GOTO 有什么不同?
如果不并行执行,使用 tasklet 有什么好处?
如果它们不是真正的线程,为什么每个消息来源都提到它们作为线程替代品?