【问题标题】:How to identify the right java Executor?如何识别正确的java Executor?
【发布时间】:2013-06-21 00:41:53
【问题描述】:

我们需要做一些异步任务处理,其中大约 30-40 个请求将同时到来,每个请求将启动一个异步任务,大约需要 7-8 秒才能完成。

如果已确定 java executorservice 来执行此类任务,那么用于此目的的空闲类型的执行器是什么?

我曾想过使用 CachedThreadPool,但我担心如果创建的线程过多会对应用程序的性能产生影响吗?

另一种选择是使用 FixedThreadPool 但我很难想到应该用它实例化的空闲无线程... 对于这种情况,推荐的 Executor 是什么?或者我们如何找到合适的?

【问题讨论】:

    标签: java asynchronous threadpool java-6 executors


    【解决方案1】:

    我认为您将研究限制在 Executors.* 工厂方法上。您应该查看ThreadPoolExecutor 的构造函数范围,您会发现最大线程池大小限制等等。

    【讨论】:

      【解决方案2】:

      我想过使用 CachedThreadPool 但我担心如果太多 创建线程是否会对性能产生任何影响 申请?

      您需要测试应用程序的性能影响。 如果它们都不适合应用程序或有一些问题,那么您可以使用自定义线程池执行器java.util.concurrent.ThreadPoolExecutor

      您可以根据需要自定义配置核心池大小,配置阻塞队列。将使用阻塞队列,当达到池大小时,任务将排队。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多