使用の長所と短所は何ですか
Spring ThreadPoolTaskExecutor vs Java Executorservicecachedthreadpool
springはJava並行性。
それらを使用する際の柔軟性を知りたいだけです。
春のThreadPoolTaskExecutorを使用することの追加された利点の1つは、管理と監視に適していることです(例:through JMX)、いくつかの有用な属性を提供: "corePoolSize"、 "maxPoolSize"、 "keepAliveSeconds"(実行時のすべての更新をサポート); 「poolSize」、「activeCount」。
それとは別に、すでにアプリケーションにスプリング注入が実装されている場合は、明らかに簡単に使用できます。それを使用すると、以下のようにセッターインジェクションによってスレッドプールを直接インジェクトできます:
<bean id="taskExecutor"
class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="WaitForTasksToCompleteOnShutdown" value="true" />
</bean>
一方ExecutorService CachedThreadPoolは、最新の使用率の低いスレッドを共有するための優れたユーティリティです(60秒未満)。 CachedThreadPoolはそのメソッド(newCachedThreadPool())の別個のクラスではないことを指摘することが重要です。
グーグルの後、次のものが得られます:
Executorservice
Java.util.concurrent.ExecutorServiceインターフェースは、バックグラウンドでタスクを実行できる非同期実行メカニズムを表します。したがって、ExecutorServiceはスレッドプールに非常に似ています。実際、Java.util.concurrentパッケージに存在するExecutorServiceの実装は、スレッドプールの実装です。
ThreadPoolTaskExecutor
この実装は、Java 5環境でのみ使用できますが、その環境で最も一般的に使用されています。Java.util.concurrent.ThreadPoolExecutorを構成するためのBeanプロパティを公開し、 TaskExecutor:ScheduledThreadPoolExecutorなどの高度なものが必要な場合は、代わりにConcurrentTaskExecutorを使用することをお勧めします。