task は抽象的な基本クラスであり、task::execute メソッドを必ずオーバーライドしなければなりません。 execute メソッドは、タスクを実行するために必要なアクションを行ってから、実行する次のタスクを返すか、スケジューラーが実行する次のタスクを選択する場合は NULL を返します。 NULL でない場合、返されるタスクは this の先行タスクの 1 つです。 「タスクの再利用」セクションで説明されている再利用/再スケジュール・メソッドの 1 つが execute() メソッドの実行中に呼び出されなければ、this オブジェクトは execute メソッドがリターンした後、暗黙的に破棄されます。
コンストラクターによって割り当てられたリソースを解放する必要がある場合、仮想デストラクターをオーバーライドします。
「アフィニティー」セクションで説明されているように、note_affinity のオーバーライドは複数のタスクのキャッシュ再利用の効率を向上させます。
スレッドがタスクの実行を開始することをスケジューラーが決定すると、次のステップを行います。