Javaマルチスレッド - JVMの観点から理解をマルチスレッド

JVMでは、複数のスレッドは、プロセス共有ヒープおよびメソッド領域リソースを、各スレッドはそれ自身の持つプログラムカウンタ仮想マシン・スタックネイティブメソッドスタックを

ヒープとは何ですか

Java仮想マシンにおけるメモリ管理の最大片、Javaヒープメモリ領域へのすべてのスレッドで共有されている仮想マシンの起動時に、作成されたオブジェクト・インスタンスを格納するために使用される、ほとんどすべてのオブジェクトインスタンスおよびアレイはメモリを割り当てるために、すべてここにあります

Javaヒープは、ガベージコレクタによって管理されるメイン領域であり、従っても呼ばGCヒープ(ガベージヒープ収集)。ガベージコレクションの観点から、Javaスタックも細分化されてコレクタは今、基本的に、世代別ガベージコレクションアルゴリズムを使用しているのでこれは、次のとおりです。新世代と旧年:より慎重に再びあります。エデンスペースは、サバイバーから、サバイバースペースに。また、メモリのより良い回復、割り当てメモリや高速化するために分割。

上に示したエデン地域、S0地域、s1は新世代領域に属し、tentired面積は歳属します。サバイバー対象領域の後に> -ほとんどの場合、オブジェクトは、新世代のガベージコレクションの後に、オブジェクトがまだ生きているならば、S0またはS1に入り、被写体の年齢が1(エデンエリアを追加する、エデンの領域の割り当てで初めてとなります初期の時代には、ある程度の年齢は(デフォルトでは15歳)、古い時代に昇格されたときに、1)となります。古い時代の年齢しきい値に昇格オブジェクトは、パラメータができます-XX:MaxTenuringThreshold設定します。

メソッド領域は何ですか

各スレッドは、仮想マシンにロードされたクラス情報を格納するために使用される共有メモリ領域であるとして、メソッド領域とJavaヒープは、定数は、静的変数は、タイムコンパイラは、コードおよび他のデータをコンパイルします。

一方、実行時定数プールもメソッド領域の一部です。知られ、その文字列の割り当て(新しい非新)、およびパッケージング使用している場合、バイト、ショート、整数、ロング、文字、ブール-128〜127の範囲内の割り当てを

仮想マシンのスタックとは何ですか

Javaのメモリは、現在の仮想マシンスタック、または仮想マシンスタックローカル変数テーブル部分について話しているスタック粗ヒープ(ヒープ)とスタックメモリ(スタック)、に分けることができます。(ローカル変数テーブル、オペランドスタック、動的リンク方法エクスポート実際には、Java仮想マシン・スタックは、スタックフレームであるが、それぞれは、そのスタックフレームを有しています)

ローカル変数テーブルは、様々なデータ型メインコンパイラ知り得る格納する(ブール、バイト、文字、ショート 、整数、フロート、長い、二重)、 オブジェクト参照オブジェクト自体とは異なる(参照型を、オブジェクトは、出発点とすることができますそれは点はハンドルまたはオブジェクトのこの位置に関連付けられた他の物体)を表すことができる、開始アドレスポインタを参照します。

ネイティブメソッドスタックとは何ですか

そして、仮想マシンは役割が非常に似スタック、違いがある:Java仮想マシンのVMスタック方式(すなわち、バイトコード)サービス、ネイティブメソッドスタック、ネイティブサービスのメソッドを使用するように仮想マシンを実行します。HotSpot仮想マシンと組み合わせたJava仮想マシンスタックで。

方法は、ローカルで実行された場合、スタックは、ローカルスタックフレーム方式、ローカルテーブルのローカル変数を格納するための方法、オペランドスタック、動的リンク、情報コンセントを作成します。

プログラムカウンタとは何ですか

プログラムカウンタは、より小さなメモリ空間である現在の実行スレッドのインジケータバイトコードの行番号と見なすことができます。バイトコードインタプリタは、次に実行するバイトコード命令を選択するためのカウンタの値が、ブランチ、ループ、分岐、例外処理で変更することで、スレッドの回復機能が完了するには、このカウンタに依存する必要があります。

また、正しい実行位置にスレッドの切り替えを復元するために、各スレッドは、独立して、スレッド間の相互の、独立した店舗を別のプログラムカウンタを必要とし、我々は「プライベートスレッド」用のメモリ領域のこのタイプを呼び出しますメモリ。

参考:

  1. Javaのメモリ領域は、明確な記事の話かもしれ

おすすめ

転載: juejin.im/post/5d03b2ae51882546dd100b04