我正在编写一个相当复杂的 Java 服务器应用程序,除了通常的请求响应处理之外,它还有一个重要的后台处理部分。一些后台处理是使用 Quartz 框架以类似 cron 的方式完成的。其他任务更多的是按需执行 - 如果新客户端连接它会创建额外的工作以不时更新它。cron 任务也可以是多种多样的——一些监视外部应用程序,一些计算统计等等。
我正在使用多个线程池来运行所有这些作业,并认为类似的作业将共享一个线程池,但不同的作业不会共享一个。例如,监控作业永远不会在统计池上运行,统计作业永远不会在监控池上运行。
另一方面,我知道有些人宁愿只拥有一个线程池并在其上运行所有内容而无需任何分离。
我想知道在这种情况下什么被认为是最佳实践。
分离线程池的优点和缺点是什么?
这还重要吗?