Javaスレッドはユーザーレベルのスレッドであり、ユーザーレベルのスレッドとカーネルレベルのスレッドの違いの1つは、カーネルレベルのスレッドがカーネルによってスケジュールされていることです(変更できません)。ユーザーレベルのスレッドについては、定義できます独自のスケジューリングアルゴリズム。
では、Java でスレッドをスケジュールするにはどうすればよいでしょうか。複数のスレッドの実行準備が整うと、ランタイム システムはRunnable
実行の優先順位が最も高いスレッドを選択します。優先順位が同じ 2 つのスレッドが CPU を待機している場合、スケジューラはそのうちの 1 つを選択してラウンドロビン方式で実行します。RR が不要な場合はどうすればよいですか? それを変更する方法はありますか、それともここで何か不足していますか?