Multithreading 当每个请求的子任务未知时,Singleton ThreadPoolExecutor vs Individual ThreadPoolExecutor

Multithreading 当每个请求的子任务未知时,Singleton ThreadPoolExecutor vs Individual ThreadPoolExecutor,multithreading,threadpoolexecutor,java-threads,Multithreading,Threadpoolexecutor,Java Threads,我有一个应用程序,其中每个HTTP rest请求被拆分为多个rest请求以获取数据 示例-获取学生Id 1的作业详细信息。对于学生1,作业ID的数量为(1,22,32,54)。然后,它对不同的rest服务进行4次rest调用,以按顺序获取数据。对于不同的学生,ID的数量将不同,因此其余的学生会调用 我正在使用ThreadPoolExecutor来完成此操作。在所有rest请求线程执行完毕时获取结果列表 我的问题是- 方法1-我应该创建一个ThreadPoolExecutor的单例版本吗? 方法2

我有一个应用程序,其中每个HTTP rest请求被拆分为多个rest请求以获取数据

示例-获取学生Id 1的作业详细信息。对于学生1,作业ID的数量为(1,22,32,54)。然后,它对不同的rest服务进行4次rest调用,以按顺序获取数据。对于不同的学生,ID的数量将不同,因此其余的学生会调用

我正在使用ThreadPoolExecutor来完成此操作。在所有rest请求线程执行完毕时获取结果列表

我的问题是- 方法1-我应该创建一个ThreadPoolExecutor的单例版本吗? 方法2-或者对于每个请求,我应该创建一个ThreadPoolExecutor池

方法1- 来自另一个请求的任务将混淆,以及如何找到Http请求的结果列表。 成本不高,因为它只创建一个池

方法2- 成本高昂,因为它每次都会创建一个池。 来自另一个请求的任务不会混淆。
由于rest请求增加时没有可用内存,因此可能无法创建新的ThreadPoolExecutor。

Threadpool是线程的一个reposiroty-因此您可以创建一个singleton,然后将作业排队。