2016-11-24 6 views
0

私は1000スレッドを作成し、各スレッドはRuntime.exec()を呼び出してプロセスを開始します。私はjava Runtime.exec()によって呼び出された同時実行可能なプロセス数はいくつですか?

watch -n 1 'ps -ef|grep "AppName"' 

によって並列実行プロセスを見ているとき しかし、私は唯一の4つのプロセスが最大で同時に実行見つかりました。 ほとんどの場合、プロセスは2つまたは1つだけ実行されます。

Runtime.exce()には並列実行プロセスに制限がありますか?

答えて

0

多くのプロセッサーや異なる操作が実行されている場合(たとえば、メインスレッドが継続している間に別のスレッドで実行される低速のI/Oプロセス)にのみ、並列処理が行われます。

オペレーティングシステムが各スレッドに時間を与えるので、すべてが同じプロセスを実行しているコアより多くのスレッドを持っている場合は、タイムスライスが必要です。

+0

異なるプロセス名を並列実行することができますが、コアごとに同じプロセス名を実行できますか?だから、CHROMEがコアを超えるように多くのプロセスを実装する方法は? – PDF1001

+0

異なるプロセス、異なることをする。タイムスライシングが起こっています。オペレーティングシステムはスレッドをスワップして全員に交代させます。 – duffymo

関連する問題