pcntl_setqos_class
現在のスレッドの QoS クラスを設定する
説明
void pcntl_setqos_class(Pcntl\QosClass $qos_class = Pcntl\QosClass::Default)
QoS クラスを設定します。
パラメータ
-
qos_class
-
現在のスレッドに割り当てる Quality of Service クラス。
オペレーティングシステムは、これを CPU 時間の割り当て、
I/O 優先度、電力消費をスケジューリングする際のヒントとして使用し、
上位のクラスは下位のクラスに割り込んで実行されます。
利用可能なケースについては、Pcntl\QosClass
を参照してください。
-
Pcntl\QosClass::UserInteractive
-
最も高い優先度です。ユーザーインターフェイスを直接駆動する処理向けで、
イベント処理や描画など、体感的な遅延を避けるために
ほぼ瞬時に完了する必要があるものを想定しています。
-
Pcntl\QosClass::UserInitiated
-
高い優先度で、
UserInteractive のすぐ下です。
ユーザーが明示的に開始し、結果を待っている処理向けで、
数秒以内に完了することが期待されるものを想定しています。
-
Pcntl\QosClass::Default
-
標準の優先度で、より具体的なクラスが該当しない場合に使用します。
より優先度の高い処理の後に実行されますが、
Utility や Background
よりは先に実行されます。
-
Pcntl\QosClass::Utility
-
低めの優先度です。ダウンロード、インポート、
一括計算など、ユーザーは認識しているものの、
結果を待ってはいない長時間の処理向けです。
省電力なスケジューリングが行われます。
-
Pcntl\QosClass::Background
-
最も低い優先度です。プリフェッチ、インデックス作成、
メンテナンスなど、ユーザーが認識していない処理向けです。
電力効率を強く重視して最適化されており、
システムが高負荷の場合は実行が後回しにされる可能性があります。
注意:
この関数は、Apple のプラットフォームでのみ利用可能です。
エラー / 例外
内部の pthread_set_qos_class_self_np() の呼び出しが失敗した場合、
Error をスローします。
参考
- pcntl_getqos_class
- Pcntl\QosClass