概要とスレッドのデータ領域JVMは、第三中が実行されています
1.概要
メモリは、リアルタイムオペレーティングシステムとアプリケーションを運んで、非常に重要なシステムリソース、CPUやハードディスクストレージと中間ブリッジです。JVMのメモリレイアウトは、JVMの効率的かつ安定した動作を確保するための操作、配布および管理戦略のJavaアプリケーションを定義します。JVMの異なる方法及びメモリ管理機構を分割するためには、偏微分が存在します。
(1.7の前)
(1.8の後)
Java仮想マシンは、仮想マシンを終了して、作成された仮想マシンを起動しますそのうちのいくつかは、ランタイムデータ領域、中に実行中のプログラムの数を定義するために使用され、破壊されます。いくつかのスレッドが開始され、終了してデータ領域のスレッドに対応するが作成され、破壊される一つのスレッド、1つです。
上図の灰色の部分は、シングルスレッドプライベートである赤マルチスレッドで共有するため。その
- 各スレッド:プログラムカウンタ、スタック、スタック、ローカルを含め自立、
- スレッド間で共有:ヒープその外部メモリ(永久的置換元素空間、コードキャッシュ)
スレッド間で共有説明
各JVMランタイムの唯一のインスタンス。ランタイム環境:ランタイム環境、フレームのメモリ構造の真ん中に相当します
2.スレッド
- スレッドは実行単位でプログラムです。JVMは、アプリケーションが並列に複数のスレッドを実行することを可能にします。
- ホットスポットJVMにおいて、各スレッドは、直接ローカル・オペレーティング・システムのスレッドにマッピングされ
- Javaスレッドを実行する準備ができている場合は、この時間は、ネイティブオペレーティングシステムのスレッドも作成しました。Javaスレッドの実行が終了した後、地元のスレッドが回復します。
- オペレーティングシステムは、スレッドは、スレッドローカルの初期化が成功した後に、使用可能なCPUのいずれかで読み取るためにジャンプし、すべての手配を担当しています。彼女は、Javaスレッドのrunメソッドを呼び出します。
2.1JVMシステムスレッド
- jconsoleをまたは任意の他のデバッグツールを使用している場合は、バックグラウンドで実行されている多くのスレッドが表示されます。これらのスレッドは、メインスレッドとスレッドあなたが作成することを、すべてのメインスレッドが含まれていない中で、公共の静的な無効メイン(文字列[])を呼び出します。
- ホットスポットのJVMどこ主に以下でこれらのスレッドのバックエンド・システム:
- 虚拟机线程:这种线程的操作时需要JVM到达安全点才会出现。这些操作必须在不同的线程中发生的原因是他们都需要JVM到达安全点,这样堆不会变化。这种线程的执行类型包括“stop-the-world”的垃圾收集,线程栈收集,线程挂起以及偏向锁撤销。
- 周期任务线程:这种线程是时间周期时间的体现(比如终端),他们一般用于周期性操作的调度执行
- GC线程:这种线程对在JVM里不同种类的垃圾收集器行为提供了支持
- 编译线程:这种线程在运行时会将字节码编译成本地代码
- 信号调度线程:这种线程接收信号并发送给JVM,在它的内部通过调用适当的方法进行处理。
微信公众号