3

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

本实现具有ExecutorService A5个线程的容量。

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

现在,一个类型的线程B将在一些类型的线程A完成后运行。

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

我也应该这样

  • 添加一个新ExecutorService的来处理类型B线程
  • 还是我应该增加该线程的容量ExecutorService A并运行类型B线程?

我认为 Java 有两个ExecutorServices 可能会有一些额外的开销,但另一方面,线程总数会增加。这有关系吗?

4

2 回答 2

4

我会推荐两个ExecutorServices,然后您可以利用包ExecutorService提供的不同 s java.util.concurrent

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

  • ExecutorServicea 将固定线程池设置为五个线程。
  • ExecutorServiceb 带有缓存的线程池。
于 2010-05-13T10:05:39.730 回答
1

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

于 2010-05-13T09:40:17.513 回答