マルチスレッド・アプリケーションの開発に注意して

マルチスレッド・アプリケーションの開発に注意して

たとえば、次の32ビットウィンドウは2 GBに制限されています。仮想マシンは、Javaメモリヒープおよびメソッド領域の2つの部分を制御するための最大パラメータを提供します。
2ギガバイト(オペレーティング・システムの制限)マイナスのXms(最大ヒープサイズ)は、MaxPermSizeをマイナス(最大容量方式エリア)は、プログラムカウンタメモリ消費量は(無視できる)非常に小さいです。州の消費メモリのスキル内の仮想マシンのプロセスがカウントされていない場合は、上の残りのメモリ、仮想マシンのスタックスタックはネイティブメソッド「分割」。スレッドの残りの部分を作成するときに、各スレッドスタックの容量に大きな割り当ては、自然にあまり確立することができるスレッドの数は、容易にそれはメモリ不足になります。
VMのデフォルトのパラメータは、ほとんどの場合、スタックの深さ、通常のための問題は到達しないために1000年から2000年まで(各メソッドのスタックフレームサイズにプッシュされていないが、我々は唯一のほとんどのケースでそれを言うことができ、同じではありません) (再帰を含む)メソッド呼び出しは、この深さは十分なはずです。しかし、あまりにも多くのスレッドがメモリのオーバーフローの確立につながる場合、スレッドの数を減らすか、または64ビットの仮想マシンを交換できず、それだけで最大スタックを低減し、スタックの容量を減少させることによって、より多くのスレッドのために交換することができます。

公開された30元の記事 ウォンの賞賛8 ビュー20000 +

おすすめ

転載: blog.csdn.net/wg22222222/article/details/83051184
おすすめ