我正在为基于Jersey的Web服务添加新端点。支持端点的逻辑需要对另一个服务进行10到50次调用。这些调用是独立的,可以并行化,所以我在考虑使用executor服务来跨多个线程分配工作。
我想知道是否应该为每个请求实例化一个executorService,或者是否应该在webapp上有一个共享的executorService实例。在后一种情况下,我如何决定它应该运行的线程数?
答案 0 :(得分:2)
我想知道是否应该为每个实例化一个executorService 请求或是否应该有一个共享的executorService实例 网络应用程序。在后一种情况下,我将如何决定其数量 它应该运行的线程?
没有。通常,您不应为每个Web请求(选项-1)实例化executorService
,因为服务器很快就会耗尽内存,而且,即时创建线程池也很昂贵(耗时)。
因此,您需要通过在服务器启动期间创建它来使用executorService
的共享实例(选项-2)。根据您的要求和进行性能测试来配置线程池大小。
您可以参考here了解线程池。