スレッドの作成にコストがかかる理由
Java のドキュメントには、スレッドの作成はコストのかかる操作であると記載されています。しかし、コストが高くなるのは正確には何でしょうか?
スレッド ライフサイクル オーバーヘッド
スレッドの作成と終了には、重大なオーバーヘッドが発生します。 JVM とオペレーティング システムは、次のようなさまざまな操作を実行します。
リソース消費
スレッドは、次のようなリソースを寿命全体にわたって消費します。
プラットフォームの変動性
特定のコストはプラットフォームによって異なります。ただし、スレッドの作成は一般に、どの Java プラットフォームでも安価な操作ではありません。
ベンチマーク データ
ベンチマークは、Sun Java 1.4.1 プラットフォームでスレッドを作成することを示しています。 2002 Xeon プロセッサの作成速度は 1 秒あたり約 4000 スレッドでした。最新のプラットフォームでは作成時間が短縮されていますが、それでもスレッドの作成は、スレッド プールからスレッドを再利用するよりも大幅にコストがかかります。
グリーン スレッドとネイティブ スレッド
ソフトウェアで実装され、ネイティブ スレッドに依存しないグリーン スレッドは、作成コストが低くなる可能性があります。ただし、他のパフォーマンスのトレードオフも伴います。
Project Loom
OpenJDK Loom プロジェクトは、標準 Java スレッドの代替として軽量の仮想スレッドを導入することを目的としています。仮想スレッドはネイティブ スレッドとグリーン スレッドの側面を組み合わせ、潜在的なコスト削減を実現します。
以上がJava スレッドの作成にこれほど費用がかかるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。