コルーチンは明らかに状態を持つが,果たしてルーチンと言ってしまっていいのだろうか...
コルーチンを使った並行処理は,green thread / userland thread / fiber などと呼ばれることもある.
タスクキューのタスクに対して,発火時間プロパティを持たせることで,JavaScriptのsetTimeout
のようなことが可能になる.その場合,タスクキューの実体は,発火時間を優先度とする優先度付きキューになり,発火時間を過ぎていないタスクだけが残った時は[最も直近の発火時間まで,あるいは,新しいタスクを受け取るまで]sleepする.
std::priority_queue
が輝く貴重な瞬間