0

ユーザー定義のスレッドライブラリを作成しています。私はRound-Robinスケジューリングアルゴリズムを使用し、context switchingメソッドを使用します。しかし、割り当てられた前にスレッドの実行が終了したときにどうすればよいかわかりませんtime slot。プログラムは終了します。schedule現在のスレッドが終了したときに関数を呼び出して、実際にすべてのスレッドを再スケジュールしたいと思います。

この問題を克服する2つの方法を見つけました。

  1. thread_exit現在のスレッドによって実行されている関数の最後に明示的に関数を呼び出す。
  2. 現在の関数が終了した後に関数が実行されるstack contentsように変更する。thread_exit

しかし、私はこれらの解決策を適用する方法を見つけることができません....そこにいる誰か...plzは私を助けます...

4

1 に答える 1

0

少し設計上の欠陥があるように聞こえます。私があなたを正しく理解している場合、いくつかのタスクを実行するために割り当てることができるスレッドがあり、タスクが完了すると、スレッドはアイドル状態になり、次のタスクを待機するソリューションを実装しようとしています。

それが本当なら、入ってくるタスクのキューを管理するデーモンプロセスまたはサービスのようなものを設計すると思います。新しいタスクをリッスンするコントローラーでタスクを実行する責任があるスレッドのプールです。

于 2012-09-15T16:15:04.650 に答える