2017-02-17 10 views
0

私はPSを行う上で、マルチスレッドのJavaプログラムを実行し-ef | grep program-name私は1つのプロセスしか見ません。このプロセスの一部として実行されるスレッドは、サブプロセスです。 OSは、スケジューリングの観点から、単一のスレッド化されたプロセスとマルチスレッド化されたプロセスを別々に扱いますか?マルチスレッドのJavaプロセスは、OSによってシングルスレッドのプログラムよりも頻繁にスケジュールされますか?

+1

重複質問(!例外があるかもしれません)が、いくつかの素晴らしいリソースがあります。http://stackoverflow.com/questions/8463741/how-linux-handles-threads-and-プロセススケジューリング – gusto2

+0

ありがとう! http://www.linuxquestions.org/linux/articles/Technical/Linux_Kernel_Thread このリンクは非常に良い洞察を提供します – Abhijeet

答えて

0

いいえ、シングルスレッドまたはマルチスレッドプロセスのための均一な御馳走があります。 OSはプロセスをスレッドの集合として認識し、スレッドのみをスケジュールします。スケジューラの選択全体のゲームを、考慮または考慮されている場合にのみ変更する(優先度の上限)

Javaはスケジュールされず、スケジューリングを基礎となるOSに委任します。各OSには独自のスケジューリング方法があります。一般的に、上記のことができるかもしれない

+1

プロセスが2つ以上のスレッドが同時に実行できるようにスレッドに分割されている場合、それらのうちの2つ以上が実行されます。このようなブランケットステートメントを作ることはできません。 – EJP

+0

@EJP theBeaconは何も主張しませんでした。実際、OSプロセスは複数のスレッドを持つことがあり、OSスケジューラに依存してスレッドをスケジューリングします。シングルスレッドプロセスは、スレッドを持つプロセスでもあります(単一のスレッドでも可能です)。 Btw - 優先度はヒントとしてのみ考慮されるべきであり、より高い優先度を持つスレッドがより多くのCPU時間を得る保証はない – gusto2

関連する問題