[解決済み] Executors.newCachedThreadPool() と Executors.newFixedThreadPool() の比較。
質問
newCachedThreadPool()
対
newFixedThreadPool()
どのような場合にどちらかを使うべきですか?リソースの活用という点では、どちらの戦略が優れているのでしょうか?
どのように解決するのですか?
この2つの関数の違いと使い方は、ドキュメントによく書かれていると思います。
を再利用するスレッドプールを作成します。 固定数のスレッドが 共有の非束縛キューを使用します。どの 最大でnThreadsのスレッドが存在することになります。 タスクを処理するアクティブな状態である。もし のときに追加タスクが投入された場合 は、すべてのスレッドがアクティブになると、そのスレッドは をキューに入れる。 を使用することができます。いずれかのスレッドが終了した場合 実行中の不具合による シャットダウンする前に、新しいものが引き継がれます。 を実行するために必要であれば、その代わりに 後続のタスク のスレッドは プールは、明示的に をシャットダウンします。
新しいスレッドを作成するスレッドプールを作成します。 スレッドを再利用します。 以前構築されたスレッドが が利用可能である。これらのプールは 通常、次のような場合にパフォーマンスが向上します。 短命のプログラムを多数実行するような 非同期タスク を呼び出すと は、以前に構築された スレッドがあれば、それを使用する。もし、既存の スレッドが利用できない場合、新しいスレッドが作成されます。 作成され、プールに追加される。 この間、使用されなかったスレッドは 60秒後に終了し はキャッシュから削除される。このように、プール を使用することで、十分な時間アイドル状態を維持することができます。 は、リソースを消費しない。ただし 似たようなプロパティを持つプールでも 詳細が異なる(例えば。 タイムアウトパラメータ) を作成することができます。 ThreadPoolExecutor コンストラクタを使用します。
リソースの面では
newFixedThreadPool
は、すべてのスレッドを明示的に終了させるまで稼働させ続けます。また
newCachedThreadPool
60秒間使用されなかったスレッドは終了され、キャッシュから削除されます。
このように考えると、リソースの消費量は状況に大きく依存することになります。例えば、膨大な数の長時間稼働するタスクがある場合、私は
FixedThreadPool
. また
CachedThreadPool
ドキュメントには、「これらのプールは、通常、短時間の非同期タスクを多数実行するプログラムのパフォーマンスを向上させます」と書かれています。
関連
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
Javaクラスローダーにソースコードから潜り込む
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] java.lang.UnsupportedClassVersionError を修正する方法。サポートされていないメジャー.マイナーバージョン
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] JDKとJREの違いは何ですか?
-
[解決済み] ConcurrentHashMapとCollections.synchronizedMap(Map)の違いは何ですか?
-
[解決済み] Task.DelayとThread.Sleepの使い分けは?
-
[解決済み】サーブレットはどのように動作するのですか?インスタンス化、セッション、共有変数とマルチスレッド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
springboot project MIMEタイプ text/htmlで転送された静的ファイルを読み込む。
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
javaの模造品QQ WeChatのチャットルーム
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
org.glassfish.jersey.servlet.ServletContainer
-
java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
-
JSPで「リストが型解決できない!」の解決方法
-
ローカルリソースのロードが許可されていない場合の解決策