Stackless Python のタスクレットについて、Google で大規模な調査を行いました。すべての情報源はそれをスレッドとして言及しています
stackless.com : マイクロスレッド: タスクレットは関数をラップして、マイクロスレッドとして起動できるようにします。
ただし、タスクレットは同時実行ではありません。コードの一部を実行します。
次のようなコード:
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とどう違うの?
タスクレットが並列実行されていない場合、タスクレットを使用する利点は何ですか?
それらが実際にはスレッドではないのに、なぜすべてのソースがそれらをスレッドの代替として言及しているのですか?