我已经进行了大量的谷歌搜索,关于Stackless Python的tasklets。每个来源都将其称为线程。
但是,tasklets不是并发的。它们逐步执行代码的一部分。
像这样的代码:
def function(n):
print n
print n
stackless.schedule()
stackless.tasklet(function)(3)
stackless.tasklet(function)(10)
stackless.run()
将要打印
3
3
10
10
任务单元执行代码,直到遇到stackless.schedule(),然后从头开始或从上次暂停的位置执行下一个任务单元。
每个程序员都知道“不使用GOTO”的黄金法则。我的问题是:
这与GOTO有何不同?
如果它们不会并行执行,使用任务单元的优点是什么?
为什么每个来源都将它们称为线程的替代品,如果它们实际上并不是线程?