当新类型的线程运行时,更大的线程池或额外的 ExecutorService ?

发布于 2024-09-01 21:55:52 字数 560 浏览 2 评论 0原文

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

当前的实现有 ExecutorService A,容量为 5 个线程。

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

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

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

那么我应该

  • 添加一个新的 ExecutorService 来处理类型 B 线程
  • 还是应该增加 ExecutorService A 的容量并运行类型 B /code> 也与那个线程相关吗?

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

I have a question that is related to possible overhead of ExecutorServices in Java.

The present implementation has ExecutorService A with a capacity of 5 threads.

  • It runs threads of type A.
  • type A threads do some database reading and writing.

Now, a thread of type B will run after some threads of type A has finished.

  • The number of type B threads that will run is different from time to time.
  • type B threads do some filesystem IO (not database).

So should I

  • add a new ExecutorService to handle type B threads
  • or should I increase the capacity of ExecutorService A and run type B threads with that one as well?

I'm thinking that there might be some extra overhead for Java to have two ExecutorServices, but on the other hand the total number of threads will increase either way. Does it matter at all?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空名 2024-09-08 21:55:52

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

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

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

I will recommend two ExecutorServices, then you can take advantage of the different ExecutorServices provided by the java.util.concurrent package.

It makes the code easier and the overhead is ignorable.

  • ExecutorService a with a fixed thread pool set to five threads.
  • ExecutorService b with a cached thread pool.
江挽川 2024-09-08 21:55:52

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

If you're talking about 5 threads, and you're not exhausting your thread pool capacity, I would tend to say that the overhead woulld be insignificant either way, and you should just go whatever you deem to be the simplest route.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文