明示的なスケジューリングがない場合、pthreadはカーネルによってランダムに実行されるようにスケジュールされます。pthreadスケジューリング方法?
pthreadライブラリで定義されているスケジューリング方法は、プライオリティなど同じですか?
明示的なスケジューリングがない場合、pthreadはカーネルによってランダムに実行されるようにスケジュールされます。pthreadスケジューリング方法?
pthreadライブラリで定義されているスケジューリング方法は、プライオリティなど同じですか?
スレッドの優先度は、プロセスの優先度に追加されるデルタとして指定されます。プロセスの優先順位を変更すると、そのプロセス内のすべてのスレッドの優先順位が変わります。スレッドのデフォルトの優先度はDEFAULT_PRIO_NPです。これはプロセスの優先度と変わりません。
これらのPthread APIは、SCHED_OTHERというスケジューリングポリシーのみをサポートしています。
アンAS/400スレッドは、システム内ではなく、単に他のスレッドに対する他のスレッドに対するスケジューリングリソースについて競合します過程の中で。スケジューラは、いくつかの遅延コスト曲線(優先順位範囲)に基づく遅延コストスケジューラである。 Posix標準とSingle Unix仕様では、この実装をSCHED_OTHERのデフォルトから変更できないスケジューリングスコープとスケジューリング方針として参照しています。
多少の制御が可能です。同じ優先度のスレッドの場合、pthreads標準では、FIFO(スレッドがブロックまたは終了するまで実行されるスレッド)、ラウンドロビン(スレッドが一定時間実行されるスレッド)、またはデフォルトの「その他」スレッドの選択を指定します。標準で必要とされる唯一のものは "その他"であり、振る舞いは実装に依存するが、通常はFIFOとラウンドロビンのコンボである(例えば、スレッドがブロックされるまで実行されるか、終了するか、タイムスライスが先に使用されるかのどちらかが使用される)。