【Ruby3.x】Thread::priority=()メソッドの使い方
priority=メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
priority=メソッドは、指定されたスレッドの実行優先度を設定するメソッドです。RubyのThreadクラスは、プログラム内で複数の処理を並行して実行するための「スレッド」を作成します。このpriority=メソッドを使用すると、その作成されたスレッドごとに、他のスレッドと比べてどれだけ多くのCPU時間を受け取る可能性が高いかという優先順位を数値で設定できます。
優先度の値は整数で指定します。数値が大きいほど優先度が高く、オペレーティングシステムやRubyの実行環境がスレッドをスケジューリングする際に、優先度の高いスレッドがより多くの処理時間を割り当てられやすくなります。例えば、ユーザーインターフェースの応答性に関わるスレッドには高い優先度を与え、バックグラウンドでの時間のかかる処理を行うスレッドには低い優先度を与えるといった使い方が考えられます。
ただし、スレッドの実際の実行順序や割り当てられるCPU時間は、オペレーティングシステムやRubyVMのスケジューラに依存するため、高い優先度を設定したからといって常に即座に実行されるとは限りません。このメソッドは、あくまでスレッドスケジューラへの「ヒント」として機能し、他のスレッドとの相対的な実行機会を調整するために利用されます。
構文(syntax)
1t = Thread.new { sleep 10 } 2t.priority = 10
引数(parameters)
new_priority
- new_priority: スレッドに設定する新しい優先度を指定する整数。値が大きいほど優先度が高くなります。
戻り値(return)
Integer
スレッドの優先度を設定し、その設定された優先度(整数値)を返します。