我有一个与可能的开销有关的问题 ExecutorServiceJava 中的 s。

目前的实施有 ExecutorService A 容量为5个线程。

  • 它运行类型的线程 A.
  • 类型 A 线程执行一些数据库读取和写入操作。

现在,一个线程类型 B 将追随 一些 线程类型 A 已完成。

  • 类型数量 B 将运行的线程有时会有所不同。
  • 类型 B 线程执行一些文件系统 IO(不是数据库)。

我也应该这样

  • 添加一个新的 ExecutorService 处理类型 B 线程
  • 或者我应该增加容量 ExecutorService A 和运行类型 B 也与那个线程有关吗?

我认为 Java 有两个可能会产生一些额外的开销 ExecutorServices,但另一方面线程总数无论如何都会增加。这有什么关系吗?

有帮助吗?

解决方案

我会推荐两个 ExecutorServices, ,那么您可以利用不同的 ExecutorService提供的 java.util.concurrent 包裹。

它使代码更容易并且开销可以忽略不计。

  • ExecutorService a 将固定线程池设置为五个线程。
  • ExecutorService b 带有缓存线程池。

其他提示

如果您谈论的是 5 个线程,并且您没有耗尽线程池容量,那么我倾向于说,无论哪种方式,开销都是微不足道的,您应该采用您认为最简单的路线。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top