この記事はWeChatの公開アカウント「プログラマーの成長」から転載したもので、著者はプログラマーの成長です。この記事を転載する場合は、プログラマーの成長公開アカウントまでご連絡ください。 この記事を始める前に、JVM がオブジェクトを作成し、メモリ アドレスを割り当てるプロセスを理解しており、JVM のメモリ分割も知っていることを前提とします。人道的な観点から、参考までに写真を投稿します。 JVM メモリ構造 ヒープメモリパーティション構造 ヒープ領域にメモリを割り当てるときに、マルチスレッドの安全性の問題はありますか?A: 存在するかもしれません。 新しいオブジェクト(); 上記の操作では、最終的にはヒープ メモリ内にメモリ領域の一部を開く必要があることは誰もが知っています。そこで、この質問について考えてみましょう。ヒープ領域はすべてのスレッドによって共有されます。では、JVM が頻繁にオブジェクトを作成する場合、同時実行時にヒープ メモリのスペースを空けるとセキュリティ上の問題が発生するのでしょうか? この問題を解決するために、まず考えられるのはロックですが、ロックにはパフォーマンスに影響を与えるという問題があります。 TLAB が表示されます (スレッド ローカル割り当てバッファ)上記の問題に基づいて、TLAB が導入されます。強制変換はスレッドローカル割り当てバッファです。まず、写真を見てみましょう ステートメント: ヒープ メモリにスペースを割り当てるときは、古い世代に直接割り当てられるのではなく、最初に Eden 領域に割り当てられます。メモリ割り当てが完了した後、GC が実行されるたびに、オブジェクトがリサイクルされない場合は、その生存カウントが +1 になります。この回数が 15 回に達すると、オブジェクトは古い世代に昇格されます。 オブジェクトの割り当てはまず eden 領域で実行されることがわかったので、上の図を理解するのは難しくありません。私たちはエデンエリア内の領域を分割し、これを TLAB と呼びます。各 TLAB はプライベートなので、オブジェクトを同時に作成する場合、実際にはロックなどの操作を実行する必要がなく、セキュリティの問題が解決されます。 割り当てられた TLAB スペースが使い果たされた場合、またはオブジェクトに必要なメモリ スペースが TLAB が提供できるスペースよりも大きい場合、メモリ スペースはパブリック エデン領域または古い世代にのみ割り当てることができます。 要約する
この問題から別の疑問も推測できます。ヒープ領域はスレッドによって厳密に共有されるわけではありません。 |
<<: エッジコンピューティングとデータストレージ: インダストリー4.0の主要テクノロジー
>>: 分散システムにおける「スプリットブレイン」とは一体何でしょうか?
検索結果ページで上位にランクされるためには、コンテンツがユニークでなければならないことは誰もが知って...
陸松松のブログや牟長青のブログから、大小の地名+SEOブログまで、独立系ブログは皆さんもよくご存知だ...
Rap "indescribable" Node は、IDC 業界で 10 年以...
あらゆる分野、さまざまなメインキーワードには、一定のパターンがあると言えます。つまり、最初のいくつか...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスブログが誕生した当初は、...
最近の米国政府閉鎖については皆さんも聞いたことがあると思います。政府が閉鎖されるなんて、このシステム...
みなさん、こんにちは。A5 Webmaster Network に投稿するのは今回が初めてです。地元...
みなさんこんにちは、私はShi Touです。今朝早く、誰かがQQで私を追加しているのを見ました。この...
インターネットでは、顧客は主にストアページの表示と自身の想像力によって商品や店舗を理解し、最終的に注...
今日の企業は、製品マーケティングにおいて、もはや従来のメディア宣伝だけに頼っていません。インターネッ...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス新しいメディアの急速な発...
モバイルインターネットの時代では、トラフィック、つまりユーザーがすべてのビジネス活動の基盤となります...
[[422238]]単一のアプリケーションと環境複数のアプリケーションと環境CI 継続的インテグレー...
正直に言うと、私がウェブマスター業界に関わるようになったのはごく最近のことです。周りの同僚のほとんど...
物事を行う際には、主要なことと二次的なことの区別があることは誰もが知っています。主要なことがうまく行...