2017-03-22 5 views

答えて

2

あなたがスレッドスケジューラはその優先順位に応じてスレッドをスケジュールするを持っているかどうかを求めている場合は、答えはノーです。

これを行うことができます(プリエンプティブスケジューリング)が、使用するスケジューリングアルゴリズムを決定するのはプラットフォームによって異なります。

いくつかの測定値:それはないでしょう

+0

私はスケジューリングについて質問していません。私の質問は簡単ですスレッドの優先順位はJVMによって変更することができます – mcacorner

+0

私はあなたの質問に正確になると思います:あなたは "JVMを変更することができます"とはどういう意味ですか?誰かがJVM実装を書いてスレッド優先度を変更している可能性はありますか?それとも、JVMの実装があるのですか?私は仕様がそうすることを禁止していないと信じている(おそらく最初の質問ではい)が、もしJVMがそうしているのであれば疑問がある。しかし、なぜあなたはこれを気にしますか? –

+0

私は通常のJVMがオーバーライドされていないことを尋ねています – mcacorner

2

号。フードの下にOSやシステムを追加するだけです.OSやシステムはスレッドをコアで実行する最終コールを持っているため、独自のスケジューリングアルゴリズムが最終的に重要です。

しかし、JVMはOSにスレッドを提示し、ここでは優先度はJVMスケジューリングアルゴリズムに基づいて再び役割を果たすが、そのOSは決定する。

1

明示的な保証はありませんが、明示的に保証されているものではありません。

優先度のゲッターとセッターがあります。その意味は、誰かがセッターを再び呼び出さない限り、値が変更されないことです。

しかし、Threadクラス自体の内部にトリッキーが存在しないということは、システムのどの部分も "自分の"スレッドにsetPriority()を呼び出すことができないということではありません。

関連する問題