問題タブ [threadpoolexecutor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ThreadPoolExecutor のコア プール サイズと最大プール サイズ
という観点から言うと、コア プール サイズと最大プール サイズの正確な違いは何ThreadPoolExecutor
ですか?
例を使って説明できますか?
java - ThreadPoolExecutor - コアおよび最大プール サイズ
method で新しいタスクが送信され、実行中のスレッドが
execute(java.lang.Runnable)
少ないcorePoolSize
場合、他のワーカー スレッドがアイドル状態であっても、要求を処理するために新しいスレッドが作成されます。
1) アイドル状態のスレッドがある場合、リクエストを処理するために新しいスレッドを作成する必要があるのはなぜですか?
実行中のスレッドがそれより多い
corePoolSize
が少ないmaximumPoolSize
場合、キューがいっぱいになった場合にのみ、新しいスレッドが作成されます。
corePoolSize
2)とここの違いがわかりませんmaximumPoolSize
。第 2 に、スレッド数が 未満の場合、どのようにしてキューがいっぱいになるのmaximumPoolSize
でしょうか? キューがいっぱいになるのは、スレッドが と等しいかそれ以上の場合のみですmaximumPoolSize
。ではない?
java - ThreadPoolExecutor の将来のタスク -Spring Bean インジェクションの例外 -Spring-Beans-2.0
私は Weblogic 10.3、Spring 2.0、Oracle 11g を使用しています。「threadpoolexecutor」将来のタスク (async resp) を使用しようとすると、スレッド プール エグゼキューターによって実行される Bean が「prototype」であるため、非同期応答の待機中に次の例外が発生します。
注:Spring の ClassPathXmlApplicationContext を使用して Bean を取得している場合、例外が発生しません。これは、すべての Bean を再度ロードするため、Bean を取得するための推奨される方法ではありません。
springContextAware 、ApplicationObjectSupport; を試しました。それらも私にとってはうまくいきませんでした。
私が持っているBeanの定義は
私も試してみましlazy-init=true
たがthreadpoolexecutor
、運が悪いです。
java - threadpoolexecutor 内の「ルーティング」タスク
Runnable を実装するクラスがあります
ThreadPoolExecutor
フィールド内でタスクを「ルーティング」する方法はありRID
ますか (つまり、スレッド N 3 が Runnable withRID = 1
で実行される場合、次の tast はRID = 1
スレッド N 3 によって実行される必要があります (生きている場合))。
java - ScheduledThreadPoolExecutor - 頻繁に実行される単一のタスク/スレッド、または実行頻度が低い複数のスレッド
x 分/秒/ミリ秒などごとに実行されるジョブを設定し、Amazon SQS キューをポーリングしてメッセージを処理しようとしています。私の質問は、これに対する最善のアプローチは何であるかということです。x 個のスレッドで ScheduledThreadPoolExecutor を作成し、scheduleAtFixedRate メソッドを使用して単一のタスクをスケジュールし、それを非常に頻繁に (10 ミリ秒など) 実行して、必要なときに複数のスレッドが使用されるようにするか、同僚に提案しているように、 x 個のスレッドを持つ ScheduledThreadPoolExecutor を使用して、スケジュールされた複数のタスクをわずかにオフセットした間隔で作成しますが、実行頻度は低くなります。これは、STPE の使用方法のように思えます。
通常、私はこの種のものに Spring/Quartz を使用しますが、現時点ではそれはありません。
それで、あなたの考えは何ですか?
java - これは正しいです?ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(numThreads);
これは正しいです?
getActiveCount()
型キャストするとgetQueue()
メソッドにアクセスできるため、これを行っています。Eclipse はここでエラーのフラグを立てていませんが、私がやっていることは正しいことを確認したいのです。
ThreadPoolExecutor implements ExecutorService
にキャストExecutorService
しているので、実際には奇妙ですThreadPoolExecutor
。