イベントレットgreenthreadsを使用する単純なプログラムを作成していますが、その動作を理解できません。次の例では、スレッドが.wait()メソッドを呼び出すときにのみ実行されるようです。私はドキュメントを読んで、スレッドモジュールが提供する "start"メソッドに似たメソッドを見つけることができません。作成直後にスレッドを強制的に実行させる類似のメソッドはありますか?greenthreadsはスポーンコールの直後に実行されません
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import eventlet
>>> def test():
... print("this is a test")
...
>>> gth = eventlet.spawn(test)
>>>
>>> gth.wait()
this is a test
>>>
ドキュメントは明らかに[spawn() 'について[this](http://eventlet.net/doc/modules/greenthread.html#eventlet.greenthread.GreenThread)と言っています:'実行コントロールは、呼び出し元に直ちに戻ります。作成されたgreenthreadは次の利用可能な機会に実行されるようにスケジューリングされているに過ぎません。 'つまり、コンソールで実行しているため実行されません。代わりに 'wait()'を使わずにスクリプトで実行してください。このスニペットはうまくいくはずです。 –
私はスクリプトで同じことを試みましたが、私は同じ結果を得ました:(.. eventlet.sleep(0)を呼び出すと実行されます – redobot
ああ、私は参照してください。緑色のスレッドは実行する機会があります(そうしないと気をつけますが、そうしなければ、P:緑色のスレッドに関するすべての情報が消えてしまいます)。それ以外に、他の選択肢はありません。 –