2つのスレッドa
とb
を開始するプログラムがあり、b
がそれ自身の別の10スレッドを開始するとします。 a
はb
とそのスレッドの残りの半数を共有していますが、使用可能な「注意」の半分を受信しているのでしょうか?答えがデフォルトで後者の場合、どのように前者を達成できますか?ありがとう!スレッド内のスレッドの優先順位付け
答えて
b
、そのスレッドが残りの半分を共有し、またはそれらはすべて平等に共有んがa
は、利用可能な「注意」の半分を受けていますか?
どちらもありません。各スレッドが受け取る時間の割合は不特定であり、Javaで制御する信頼できる方法はありません。これは、ネイティブスレッドスケジューラの責任です。
答えが後者の場合、どのように前者を達成できますか?
信頼性の高い方法ではありません。
各スレッドが実行される相対的な時間に影響を与えなければならないのは、スレッドの優先順位だけです。彼らは信頼できるものでも予測可能でもありません。 javadocsは、優先順位の高いスレッドが優先順位の低いスレッドよりも優先して実行されると言うだけです。実際には、ネイティブスレッドスケジューラが優先順位をどのように処理するかによって異なります。
詳細:http://docs.oracle.com/javase/7/docs/technotes/guides/vm/thread-priorities.html ...プラットフォームおよびJavaバージョンの範囲でのスレッドの優先順位についての情報が含まれています。
このトピックに関する素晴らしいドキュメントがたくさんあります。 1つはthisです。
Javaスレッドが作成されると、Javaスレッドはそのスレッドを作成したスレッドからその優先度を継承します。スレッドの優先順位は、作成後のいつでも、setPriority()メソッドを使用して変更することもできます。スレッドの優先順位は、MIN_PRIORITYとMAX_PRIORITY(Threadクラスで定義された定数)の間の整数です。整数が大きいほど優先度が高くなります。ある時点で、複数のスレッドが実行可能な状態になると、ランタイムシステムは実行のために最も高い優先順位を持つ「実行可能」スレッドを選択する。そのスレッドが何らかの理由で停止すると、スレッドが停止して「実行不可能」になるときだけ、優先順位の低いスレッドが実行を開始します。同じ優先度の2つのスレッドがCPUを待っている場合、スケジューラはそれらの1つをラウンドロビン方式で実行するように選択します。選択したスレッドは、次のいずれかの条件が満たされるまで実行されます。
- 優先度の高いスレッドは "実行可能"になります。
- これが発生するか、run()メソッドが終了します。
- タイムスライスをサポートするシステムでは、タイムアロケーションの有効期限が切れています。
任意の時点で、最も優先度の高いスレッドが実行されています。ただし、これは保証されません。スレッドスケジューラは、より低い優先度のスレッドを実行して飢餓を回避することを選択することができる。このため、優先度は、効率化の目的でスケジューリングポリシーに影響を与えるためにのみ使用してください。 アルゴリズムの正確さのためにスレッドの優先順位に依存しないでください。
+1、 'アルゴリズムの正当性についてスレッドの優先度に依存しない'。 –
+1古典的な説明 –
スレッドが実行される順番を曖昧にすることはできません。スレッドスケジューラは、変更できない組み込みのアルゴリズムに従って動作します。スレッドスケジューラは、実行可能プールからすべてのスレッド(優先度が最も高いスレッド)を取り出して実行させます。 スケジューラがスレッドを処理する優先度についてのみ言及することができます。
- 1. プロセスの優先順位とスレッドの優先順位
- 2. スレッド内のユーザ定義メッセージの優先順位付け方法は?
- 3. CSSのユニバーサルセレクタ(*)の優先順位付け
- 4. バックログの優先順位付け
- 5. Erlangノードの優先順位付け
- 6. ASP.NETリクエストの優先順位付け
- 7. mysqlの優先順位付けケース
- 8. ASIHTTPRequest:リクエストの優先順位付け
- 9. 優先順位付けjqueryのイベント
- 10. Android - RealmResultの優先順位付け
- 11. Pythonスレッドのスケジューリング優先順位の制御?
- 12. スレッドの優先度とスレッドの精度
- 13. C言語の優先順位の優先順位
- 14. MySQLの優先順位順
- 15. CouchDBとPouchDBの同期における優先順位付け
- 16. php配列のSqlクエリの優先順位付けの値
- 17. 優先度設定のスレッド
- 18. libevのイベントの優先順位付けはできますか?
- 19. FeignクライアントEureka上でのURLの優先順位付け
- 20. ロードするウェブページのコンテンツの優先順位付け
- 21. JavaでのI/Oの優先順位付け
- 22. ThreadPoolExecutorsでのNettyタスクの優先順位付け
- 23. Storm Crawlerの再帰的クロールの優先順位付け
- 24. Retlangでのチャネル入力の優先順位付け
- 25. クラッシュしたアンドロイドサービスのスケジューリングの優先順位付け
- 26. セロリの待ち行列/タスクの優先順位付け
- 27. LogstashとKafkaのメッセージの優先順位付け
- 28. Googleページスピードの問題「目立つコンテンツの優先順位付け」
- 29. CSSセレクタの部分の優先順位付け
- 30. CSS優先順位
ダウン投票者 - あなたは説明したいですか? –